我的代码:

Question.find({
    _id : req.headers['questionid']
}, {
    question : 1,
    tags : 1
}, function(req, foundQ) {
    // doSome stuff with foundQ
}).then(function(foundQ) {
    //some more action
});




我的问题:

如果mongoDB find调用未能从ID中找到问题,我不希望调用.then部分。我希望所有这些都最后跳到一个失败块。

我尝试添加
.fail(function() { });.catch(function() { });最后,但这似乎不起作用。

我特别需要做什么?为什么不成功/失败?

除此以外。我正在使用Q-那里有可以使用的东西吗?

谢谢。

最佳答案

您可以执行以下操作:

Question.find({
    _id : req.headers['questionid']
}, {
    question : 1,
    tags : 1
}, function(req, foundQ) {
    if(!foundQ){
         return q.reject("I don't found anything");
    }
    // doSome stuff with foundQ
}).then(function(foundQ) {
    //some more action
});


mongo节点驱动程序的事件
查询返回空值时不要抛出错误,
如果结果不确定,您可以在下一个“ then”中“模拟”错误。

09-18 11:15