1

我正在尝试显示从数据库中检索到的数据(我使用的是 node.js express 和 mongodb),但是我需要的数据成功显示在控制台中,但我需要在 Jade 的前端输出它.

我检索的数据:

{
date: Thu, 02 Aug 2012 07:47:19 GMT,
name: 'user1',
_id: 501a3087f7dd1e3863000001,
desc: { 
  age: '2' 
      } 
} 

检索上面的数据并呈现到用户页面的函数:

function(req, res){
    memberModel.findOne({desc: {age: '2'}}, function(err, docs){
        res.render('user.jade', {  members: docs });
        console.log(docs);
    });
};

这是应该显示年龄为 2 的用户的 user.jade 文件:

thead
    tr
        th Name
tbody
- members.forEach(function(member){
    tr
        td= member['name']
- })

我收到以下错误:

500 TypeError:
th Name 12| tbody > 13| - members.forEach(function(member){ 14| tr 15| td= member['name'] 
16| - }) Object { date: Thu, 02 Aug 2012 07:47:19 GMT, name: 'user1', _id: 
501a3087f7dd1e3863000001, desc: { age: '2' } } has no method 'forEach'

所以我不能使用 forEach 来显示数据?我应该怎么做才能显示它?任何帮助表示赞赏,在此先感谢!

4

2 回答 2

1

如果要显示成员列表

服务器:

memberModel.find({desc: {age: '2'}}).toArray( function(err, docs){
    res.render('user.jade', { title: 'Svenska Spel - Member list', members: docs });
    console.log(docs);
});

玉:

for member in members
    td= member.name

如果您只想显示一名成员

服务器:

function(req, res){
    memberModel.findOne({desc: {age: '2'}}, function(err, docs){
        res.render('user.jade', { title: 'Svenska Spel - Member list', member: docs });
        console.log(docs);
    });
};

玉:

thead
tr
    th Name
tbody
    tr
        td= member['name']
于 2012-08-02T08:32:52.530 回答
0

通过使用 find() 而不是 findOne() 解决

function(req, res){
    memberModel.find({desc: {age: '2'}}, function(err, docs){
        res.render('user.jade', { members: docs });
        console.log(docs);
});
于 2012-08-02T09:58:09.877 回答