CharlesLu 发表于 2021-5-9 11:40

nodejs+ejs+express 编写的js+html无法获取MongoDB内的数据

本帖最后由 CharlesLu 于 2021-5-10 17:31 编辑

我是照着一个视频教程做的,视频最后可以显示数据库内容:
https://www.youtube.com/watch?v=yH593K9fYvE
求大佬帮我看看哪里有错误
完成的代码是这样的:

js文件:
const express = require('express');
const mongoose = require('mongoose');
const app = express();
const ejs = require('ejs');

app.set('view engine','ejs');

mongoose.connect('mongodb://121.5.***.**:27017/Python');


const python_result = {
    title: String
}

const Python = mongoose.model("test", python_result);

app.get('/', (req, res) => {
    Python.find({}, function(err, test){
      res.render('index', {
            ResultList: test
      })
    })
})

app.listen(4000, function() {
    console.log('server is running')
})

index.ejs文件是这样的:
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Python Result</title>
</head>

<body>
    <h1>try3</h1>
    <% for(i=0; i< ResultList.length; i++) {%>
      <li><a><%= ResultList.title %></a></li>
      <% } %>
</body>

</html>

我是一步一步照着视频做,但最后启动的时候,页面只显示<h1>标签的try3,而不显示数据库的内容。

下面是数据库截图、运行的截图和网页的截图:





小丑恶人 发表于 2021-5-9 17:08

ResultList.length改为test.length
ResultList.title改为test.title???

CharlesLu 发表于 2021-5-9 17:41

小丑恶人 发表于 2021-5-9 17:08
ResultList.length改为test.length
ResultList.title改为test.title???

感谢回复,但好像不行,直接报错了

小丑恶人 发表于 2021-5-9 19:50

CharlesLu 发表于 2021-5-9 17:41
感谢回复,但好像不行,直接报错了

res.render('index', {
            ResultList: test
      })
这个的    resultlist:      去掉???

CharlesLu 发表于 2021-5-9 20:35

小丑恶人 发表于 2021-5-9 19:50
res.render('index', {
            ResultList: test
      })


感谢回复,这样程序对了,但是结果和最早的代码一样,网页只显示那个<h1>标签,不显示其它的东西

小丑恶人 发表于 2021-5-9 21:49

CharlesLu 发表于 2021-5-9 20:35
感谢回复,这样程序对了,但是结果和最早的代码一样,网页只显示那个标签,不显示其它的东西

打包发我一份?

小丑恶人 发表于 2021-5-9 21:55

小丑恶人 发表于 2021-5-9 21:49
打包发我一份?

mongoose.model("test",还是说你的这里这个test换成collection

CharlesLu 发表于 2021-5-9 22:14

本帖最后由 CharlesLu 于 2021-5-10 18:06 编辑

小丑恶人 发表于 2021-5-9 21:55
mongoose.model("test",还是说你的这里这个test换成collection
链接: https://pan.baidu.com/s/1oZ_chOgqU7cUsJ9YTn7VrQ 提取码:       

感谢大佬,我又尝试了一下,试着通过server.js这个脚本向服务器添加数据
发现数据库里面的"test"表没有变化,反而新增了一个"tests"表的内容
然后网页也会正确显示出"tests"内的数据
但是我代码都是”test“,好像没有出现过tests这个单词



小丑恶人 发表于 2021-5-10 09:42

本帖最后由 小丑恶人 于 2021-5-10 09:44 编辑

CharlesLu 发表于 2021-5-9 22:14
链接: https://pan.baidu.com/s/1oZ_chOgqU7cUsJ9YTn7VrQ 提取码: 7aik

感谢大佬,我又尝试了一下,试 ...

没啥问题吧

你的那个tests是运行时自动生成的,,如果你的代码集合为Test,那么后台数据库的集合名就是tests
页: [1]
查看完整版本: nodejs+ejs+express 编写的js+html无法获取MongoDB内的数据