我正在尝试访问我使用客户端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
,结果将打印在页面上。
答案 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