gpt4 book ai didi

javascript - 在 Jade 中循环和显示来自 Mongodb 的数据

转载 作者:可可西里 更新时间:2023-11-01 10:22:48 26 4
gpt4 key购买 nike

我一直在开发一个实时问答应用程序,用户可以在其中创建讨论,他们可以在讨论中提出问题,然后对问题添加评论。

但是,目前我还停留在问题部分。我可以成功地创建一个讨论,以及一个通过 discussionID(作为 objectID(discussionID) 存储在 MongoDB 中)链接到讨论的问题。

我正在尝试获取与讨论具有相同 ID 的问题,并将它们传递给 Jade,以便我可以在 div 中循环它们。

到目前为止我的代码是:

对于讨论 Controller :

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);
});

discussionID是我Robomongo的收藏题中的一个字段,discussion.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 个问题。

最佳答案

Question.find 是一个异步调用,因此您需要等待它执行并使用返回的数据。您呈现 View 的问题:

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);

关于javascript - 在 Jade 中循环和显示来自 Mongodb 的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37192556/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com