Javascript NodeJS/ExpressJS错误的http状态代码

Javascript NodeJS/ExpressJS错误的http状态代码,javascript,node.js,error-handling,express,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}); }, 'appli

错误处理程序:

//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.')));
    }
    ...
};

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

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

然而,404非常常见,因此我只需将逻辑添加到
req
中,以使用类似
req.notFound(message)
的内容来处理它,甚至只需使用
next('route')
来处理404

无论如何,有很多选择