我已经深入研究了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);
});
Run Code Online (Sandbox Code Playgroud)
当我传递不正确的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
});
Run Code Online (Sandbox Code Playgroud)
承诺:
var query = User.findOne({_id: userId});
query.exec().then(function () {
// handle success
}).catch(function (err) {
// handle error
});
Run Code Online (Sandbox Code Playgroud)
目前你正在混合这两种风格.选择一种风格并坚持下去.