gpt4 book ai didi

javascript - 在 mongoose 查询返回集合之前,应用程序应该如何处理 http get 响应?

转载 作者:太空宇宙 更新时间:2023-11-03 23:33:32 27 4
gpt4 key购买 nike

我的 Node.JS 应用程序通过 http GET 路由处理程序中的 mongoose 模型对 mongo 数据库执行查询。

var users;
var usersArray;

router.get('/', function(req, res) {

userModel.find().exec(function(err, userDocs) {
if (err) {
console.log(err);
} else {
userArray = _.toArray(userDocks);
users = userDocs;
}
});

res.render('users', { users: { length: usersArray.length, users: users }
});
});

Mongoose 查询返回 JS Promise。处理这种时间滞后的常见情况是什么?

最佳答案

您应该根据 mongoose 查询的回调结果来处理结果。这可确保您根据结果返回正确的响应状态。

此外,在 Node.js 中,最好在响应客户端之前返回,例如:

返回res.status(200).send()

return 保证当前上下文中的执行将停止并返回 return 之后语句的结果。即使我们没有对以下结果执行任何操作return 它保证一旦我们响应用户,我们就不会在该上下文中继续执行。这将防止代码尝试响应两次,从而导致异常。

router.get('/', function(req, res) {

userModel.find().exec(function(err, userDocs) {
if (err) {
console.log(err);
return res.status(400).json(err)
}

return res.render('users', {
users: {
length: _.toArray(userDocs).length,
users: tournamentDocs
}
});
});


});
});

关于javascript - 在 mongoose 查询返回集合之前,应用程序应该如何处理 http get 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35346568/

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