如何使用Q和JS捕获或失败来处理错误

时间:2016-02-16 19:50:56

标签: javascript mongodb q

我的代码:

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

我的问题:

如果mongoDB发现调用无法从id中找到问题,我不希望调用.then部分。我希望最后跳到故障块。

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

我需要做什么?为什么不会失败/赶上工作?

否则。我正在使用Q - 那里有什么我可以用的吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以这样做:

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节点驱动程序的事件 查询返回空时不要抛出错误, 你可以"模拟"下一个错误"然后"如果结果未定义。