ExpressJS中的错误处理

use*_*sks 1 javascript node.js express

我想在expressJS应用程序中单点开发错误处理.
我在expressJS配置中添加了以下代码:

app.use(app.router);
app.use(function (err, req, res, next) {
    console.error('ExpressJS : error!!!');
});
Run Code Online (Sandbox Code Playgroud)


因此,在应用程序中发生的任何错误然后上面的函数应该执行,以便我可以自定义方式处理错误.
但是,上面的函数没有在javascript错误或以下代码上执行:

throw new Error('something broke!');
Run Code Online (Sandbox Code Playgroud)

我看过:
http://expressjs.com/guide/error-handling.html
http://derickbailey.com/2014/09/06/proper-error-handling-in-expressjs-route-handlers/
但是,我仍然无法在expressJS应用程序中进行通用错误处理.
任何人都可以解释我将如何在单点处理任何应用程序错误?

YOU*_*YOU 5

不是快递,而是nodejs,你可以试试

process.on('uncaughtException', function(err) {
  console.log(err);
});
Run Code Online (Sandbox Code Playgroud)

因为"throw"是javascript,而不是expressjs控件.

对于那些错误,比如在express中的路由,你应该能够捕获app.error或app.use(函数(错误...作为其他建议,也可以使用req,res对象).

app.error(function(err, req, res, next){
    //check error information and respond accordingly
});

//newer versions
app.use(function(err, req, res, next) {

});
Run Code Online (Sandbox Code Playgroud)