如何在客户端输出数据? (表达+ + mongodb的玉)

时间:2012-08-02 08:18:12

标签: javascript node.js mongodb express pug

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

我检索的数据:

{
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来显示数据?我该怎么办才能展示它?感谢任何帮助,提前谢谢!

2 个答案:

答案 0 :(得分: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']

答案 1 :(得分:0)

使用find()代替findOne()

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