gpt4 book ai didi

node.js - 使用 EJS 时,来自 mongodb 的数据未显示在 View 中

转载 作者:太空宇宙 更新时间:2023-11-04 02:19:01 25 4
gpt4 key购买 nike

我正在使用 mongoose 和 express 以及 EJS。由于某种原因,我的 mongodb 中的数据没有出现在 View 中。我没有收到任何错误,它只是空白。

var Person = require('.././schema.js');

module.exports = function(app) {
app.get('/about', function(req, res) {

var peopleList = [];
var title = "Users in Database:";

Person.find(function (err, people) {
if (err) return console.error(err);
for(var i = 0; i < people.length; i++) {
peopleList.push({name: people[i].name, role: people[i].role, wage: people[i].wage});
}

console.log(peopleList);
console.log(peopleList[0].name + ' ' + peopleList[0].wage + ' ' + peopleList[0].role);
});

res.render('pages/about', {
peopleList: peopleList,
title: title
});
});
}

在我看来:

<h3><%= title %></h3>
<blockquote>
<ul>
<% for(var i = 0; i < peopleList.length; i++) { %>
<li><%= peopleList[i].name %> : <%= peopleList[i].role %> : <%= peoplelist[i].wage %></li>
<% }; %>
</ul>

替代尝试:

<ul>
<% peopleList.forEach(function(peopleList) { %>
<li><%= peopleList.name %> - <%= peopleList.role %></li>
<% }); %>
</ul>

<%= title %> 工作得很好,只是数据不行。如果我创建自己的数组,其中包含对象并使用相同的 forEach 循环,它也可以工作。

最佳答案

var Person = require('.././schema.js');

module.exports = function(app) {
app.get('/about', function(req, res) {

var peopleList = [];
var title = "Users in Database:";

Person.find(function (err, people) {
if (err)
return console.error(err);

for(var i = 0; i < people.length; i++)
{
peopleList.push({name: people[i].name, role: people[i].role, wage: people[i].wage});
}

console.log(peopleList);
console.log(peopleList[0].name + ' ' + peopleList[0].wage + ' ' + peopleList[0].role);

res.render('pages/about', {
peopleList: peopleList,
title: title
});

});

});
}

请将您的代码更改为此。

注意:您应该将 res.render 放在 Person.find 的回调函数中。

关于node.js - 使用 EJS 时,来自 mongodb 的数据未显示在 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34323462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com