如何将MongoDB中的对象发送给jade?

时间:2013-12-10 03:39:54

标签: javascript mongodb express mongoose pug

我正在尝试访问我使用客户端JS从MongoDB检索的对象。具体来说,我希望能够遍历并使用对象中的数组。这是我的服务器端JS,它成功找到results并将它们记录到终端。

app.get("/post/:id", function (req, res, next) {
  var id = req.param('id');
  var query = BlogPost.findById(id).populate('author');

  BlogPost.find(query, {"answers":"true", "blanks":"true", "_id":0}, function(err, results){

  console.log('Results '+results);//This prints an object like:// { answers: [ 'more', 'One', 'more' ], blanks: ['try']}

  query.exec(function (err, post) {
    if (err) return next(err);
    if (!post) return next(); // 404

    res.render('post/view.jade', { post: post, results: results });
  })
})
})

我的玉:

  #luck
   #{results}

然后我的客户端JS:

var results = $('#luck').html();
console.log(results.answers[2]);

我使用console.log获取undefined,结果将打印在页面上。

2 个答案:

答案 0 :(得分:3)

如果结果打印在屏幕上但你无法遍历对象,那么它可能意味着一些事情:

1)对象可能是一个数组,即结果[0]。无论结果是什么,而不是结果。无论

2)对象是字符串形式,你需要在遍历它之前调用JSON.parse(结果)

var results = JSON.parse($('#luck').html());
console.log(results.answers[2]);

答案 1 :(得分:3)

感谢@Xinzz的回答,但是这个玉:

for result in results
     p #{result.answers}

最终为我工作。从这里开始:Using Jade to iterate JSON