我有一个问题,我的代码不会返回已被推送数据的数组,我昨晚发现它是关于闭包的东西,我研究过它们并且我没有真正得到它们。所有示例都使用addeventlistener。 我知道我必须等到推动完成,因为这是异步的。
app.post("/search", function(req, res){
var test = []
for (var key in req.body.movie){
Movie.find({title: "Gotham"}, function(err, foundMovie){
test.push(foundMovie)
})
}
console.log(test)
res.render("index")
});
答案 0 :(得分:0)
MongoDB / Mongoose操作是异步的。对您的问题可能的解决方法是使用extern "C"
{
__declspec(dllexport) void ProcessData(unsigned char* data, int size)
{
//sizeof(data) is always 8
}
}
之类的。
async/await
您需要使用较新版本的Node for async / await才能工作。 :)
也永远不要在循环中执行数据库查询。
答案 1 :(得分:0)
了解如何使用promises http://frontend.turing.io/lessons/module-3/promises.html是一个很好的资源。基本上js将为数据创建一个占位符,直到它到达那里并且你可以将promises链接在一起。