【问题标题】:Error handling in MongooseMongoose 中的错误处理
【发布时间】:2012-12-28 16:47:08
【问题描述】:

我正在使用RestifyMongoose 创建一个API,而且我对这两者都是全新的。我似乎无法弄清楚在 Mongoose / Node.js 中处理错误的正确方法。

到目前为止,我正在尝试做这样的事情:

Submission.findById(req.params.submission_id, function(err, data) {

    if (err) 
        return next(err);

    res.send(data);

});

我正在尝试对此调用 GET(对于不存在的用户)。而不是发回一个简单的错误消息,它会导致我的整个节点应用程序失败。我对 return next(err) 的用户以及它应该做什么感到有点困惑。

非常感谢任何帮助。

【问题讨论】:

    标签: node.js mongoose restify


    【解决方案1】:

    未找到匹配项的 findById 查询在 Mongoose 级别不是错误,因此如果您希望以这种方式处理它,您必须自己做:

    Submission.findById(req.params.submission_id, function(err, data) {
    
        if (err)
            return next(err);
        else if (!data)
            return next(new Error("User not found"));
    
        res.send(data);
    
    });
    

    【讨论】:

    • 谢谢,我想这就是我要找的。对设置状态码 (404) 有什么想法吗?
    • @NickParsons 使用 Restify,您可以使用内置错误发送 404 错误。语法是:return next(new ResourceNotFoundError('User not found'));更多信息在这里:mcavage.github.io/node-restify/#Error-handling希望它有所帮助。
    猜你喜欢
    • 2012-08-05
    • 2014-01-07
    • 2012-08-17
    • 2013-09-04
    • 2020-10-24
    • 1970-01-01
    • 2017-01-11
    • 2012-05-15
    • 2013-11-30
    相关资源
    最近更新 更多