NodeJS / ExpressJS错误的http状态代码

时间:2013-10-23 03:30:44

标签: javascript node.js error-handling express

错误处理程序:

//error handler
app.use(function(err, req, res, next){
    console.error({error: err});
    //res.status(500);
    res.format({
        'text/html': function() {
            res.render('error', {error: err.message});
        },
        'application/json': function() {
            res.json({'error': err.message});
        }
    });
});

路线w / 404:

exports.someRoute = function(req, res, next) {
    ...
    if (!page) {
        return next(new Error('Page not found.')));
    }
    ...
};

在错误处理程序中,如何获得相应的错误状态代码?

1 个答案:

答案 0 :(得分:0)

您需要以某种方式将该信息放入错误对象中,或者使用error.status等简单属性,或者将其基于类error instanceof NotFound等类层次。

然而,404是如此常见,我只是添加逻辑req来处理它req.notFound(message)或甚至只使用next('route')处理404的最后一条路线

无论如何,有很多选择。