我已经深入研究了 Mongoose 文档,但我仍然找不到我应该如何处理 query.exec()
中的错误的信息。
var query = User.findOne({_id: userId});
var promise = query.exec(function(err) {
if (err) {
res.json(err);
return;
}
});
promise.then(function(user) {
res.json(user.name);
});
当我传递不正确的 userId 时,我将
Unhandled rejection CastError: Cast to ObjectId failed
错误打印到控制台。我认为
res.json(err)
后跟 return
语句足以正确处理错误并防止它显示在控制台中,但事实并非如此。我应该怎么做? 最佳答案
带回调:
var query = User.findOne({_id: userId});
query.exec(function (err) {
if (err) {
// handle error
return;
}
// handle success
});
promise :
var query = User.findOne({_id: userId});
query.exec().then(function () {
// handle success
}).catch(function (err) {
// handle error
});
目前您正在混合这两种风格。选择一种风格并坚持下去。