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

メンバーを1人だけ表示したい場合

サーバ:

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

findOne()の代わりにfind()を使用して解決

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 に答える