nihulus
nihulus

Reputation: 1495

How to output data at client side? (express+monogdb+jade)

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

Answers (2)

nihulus
nihulus

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

Charlie
Charlie

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

Related Questions