Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 来自mongodb的数据未使用EJS显示在视图中_Node.js_Mongodb_Express_Ejs - Fatal编程技术网

Node.js 来自mongodb的数据未使用EJS显示在视图中

Node.js 来自mongodb的数据未使用EJS显示在视图中,node.js,mongodb,express,ejs,Node.js,Mongodb,Express,Ejs,我正在使用mongoose和express以及EJS。由于某些原因,我在mongodb中拥有的数据没有出现在视图中。我没有错误,只是空白 var Person = require('.././schema.js'); module.exports = function(app) { app.get('/about', function(req, res) { var peopleList = []; var title = "Users in Database:"; Person.find

我正在使用mongoose和express以及EJS。由于某些原因,我在mongodb中拥有的数据没有出现在视图中。我没有错误,只是空白

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
});
});
}
var Person=require('.././schema.js');
module.exports=函数(应用程序){
app.get('/about',函数(req,res){
var peopleList=[];
var title=“数据库中的用户:”;
Person.find(函数(err,people){
if(err)返回控制台。error(err);
for(var i=0;i
在我看来:

<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>
  • -

效果很好,只是没有数据。如果我用对象创建自己的数组并使用相同的forEach循环,它也可以工作。

var Person=require('..//schema.js');
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
});

});

});
}
module.exports=函数(应用程序){ app.get('/about',函数(req,res){ var peopleList=[]; var title=“数据库中的用户:”; Person.find(函数(err,people){ 如果(错误) 返回控制台。错误(err); for(var i=0;i
请将您的代码更改为此

注意:您应该将
res.render
放在
Person.find

var Person=require('..//schema.js')的回调函数中;
module.exports=函数(应用程序){
app.get('/about',函数(req,res){
var peopleList=[];
var title=“数据库中的用户:”;
Person.find(函数(err,people){
如果(错误)
返回控制台。错误(err);
for(var i=0;i
请将您的代码更改为此

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