Reputation: 1495
I'm trying to displpay the data I retrieved from database(I'm using node.js express and mongodb), however the data I need successfully shows in the console, but I need to output it at the front-end side in Jade.
The data I retrieve:
{
date: Thu, 02 Aug 2012 07:47:19 GMT,
name: 'user1',
_id: 501a3087f7dd1e3863000001,
desc: {
age: '2'
}
}
The function that retrieves the data above and render to the user page:
function(req, res){
memberModel.findOne({desc: {age: '2'}}, function(err, docs){
res.render('user.jade', { members: docs });
console.log(docs);
});
};
This is the user.jade file that supossed to display the user whos age is 2:
thead
tr
th Name
tbody
- members.forEach(function(member){
tr
td= member['name']
- })
I get follow error:
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'
So I can't use forEach to display the data? How should I do in order to display it? Any help is appreciated, thanks in advance!
Upvotes: 1
Views: 1562
Reputation: 1495
Solved by using find() instead of findOne()
function(req, res){
memberModel.find({desc: {age: '2'}}, function(err, docs){
res.render('user.jade', { members: docs });
console.log(docs);
});
Upvotes: 0
Reputation: 1332
If you want to show a list of members
server:
memberModel.find({desc: {age: '2'}}).toArray( function(err, docs){
res.render('user.jade', { title: 'Svenska Spel - Member list', members: docs });
console.log(docs);
});
jade:
for member in members
td= member.name
If you want to show just one menber
server:
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);
});
};
jade:
thead
tr
th Name
tbody
tr
td= member['name']
Upvotes: 1