在Jade中循环显示Mongodb的数据

我一直在做一个现场问答应用程序,在这个应用程序中用户可以创build讨论,在讨论中他们可以提问,然后添加评论的问题。

然而,目前我被困在问题部分。 我可以成功地创build一个讨论,并将讨论的关联问题(存储在MongoDB中作为objectID(discussionID))存储在讨论中。

我试图得到与讨论具有相同ID的问题,并将它们传递给Jade,这样我就可以用div来循环它们。

我的代码到目前为止是:

讨论控制器:

function getOne(req, res, next) { Discussion.findOne({_id: req.params.id}, function onDiscussionFound(err, discussion) { if(!discussion) { res.status(404).send("Discussion not found"); } console.log(discussion); // we return the json version with cleaned up model to the user //res.send(discussion.toJSON()); var Questions = Question.find({discussionID: discussion.id}, function(err, data){ console.log(data); }); //console.log(Questions); res.render('discussion', { title: discussion.title, description: discussion.description, user: req.user, discussionID: discussion.id, questions: Questions}); }); } 

所以我遇到的问题是:

 var Questions = Question.find({discussionID: discussion.id}, function(err, data){ console.log(data); }); 

讨论ID是Robomongo收集问题中的一个字段,讨论ID是讨论的ID。

这可能是我的渲染上的一个问题,我不确定,因为我很新。

在我的Jade discussion.jade文件中,我尝试检索这样的问题:

 if questions each question in questions p= question 

但是,这给了我一个永无止境的回应,看起来像这样:

 [object Object] [object Object] function model(doc, fields, skipId) { if (!(this instanceof model)) { return new model(doc, fields, skipId); } Model.call(this, doc, fields, skipId); } [object Object] find [object Object] [object Object] [object Object] function () { var args = Array.prototype.slice.call(arguments); _this.wrap(name, fn, context, args); } function () { var args = Array.prototype.slice.call(arguments); _this.wrap(name, fn, context, args); } function () { var args = Array.prototype.slice.call(arguments); _this.wrap(name, fn, context, args); } function () { var args = Array.prototype.slice.call(arguments); _this.wrap(name, fn, context, args); } function () { var a 

等等…

然而,我的console.log数据返回了迄今为止被问到的3个问题。

       

网上收集的解决方案 "在Jade中循环显示Mongodb的数据"

Question.find是一个asynchronous调用,因此您需要等待直到执行并使用返回的数据。 您提出问题的问题:

 var Questions = Question.find({discussionID: discussion.id}, function(err, data){ console.log(data); res.render('discussion', { title: discussion.title, description: discussion.description, user: req.user, discussionID: discussion.id, questions: data}); }); //console.log(Questions);