gpt4 book ai didi

javascript - Node js 闭包需要推送到数组

转载 作者:太空宇宙 更新时间:2023-11-03 22:25:53 25 4
gpt4 key购买 nike

我有一个问题,我的代码不会返回已将数据插入的数组,我昨晚发现这是关于闭包的问题,​​我研究了它们,但我并没有真正理解它们。所有示例都使用 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")
});

最佳答案

MongoDB/Mongoose 操作是异步的。解决您的问题的一个可能方法是像这样使用 async/await

app.post("/search", async function(req, res){
var test = []
for (var key in req.body.movie){
let foundMovie = await Movie.find({title: "Gotham"})
test.push(foundMovie)
}
console.log(test)
res.render("index")
});

您将需要使用较新版本的 Node 才能使 async/await 工作。 :)

也不要在循环中执行数据库查询。

关于javascript - Node js 闭包需要推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46527430/

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