Express.js中的异常处理

在Express的官网上,可以找到关于异常处理的方法如下:

app.use(function(err, req, res, next) {
  console.error(err.stack);
  res.status(500).send('Something broke!');
});

遗憾的是,由于Node.js中大部分任务都是异步处理的,所以传统的try、catch是无法拦截异常的,也无法流入上述异常处理函数中。

这篇文章中,列出了一些处理方法,但是都比较繁琐。

实际上,我们可以使用一个express-domain-middleware来解决问题:

app.use(require('express-domain-middleware'));

之后,所有未捕获的异步异常,都会流入到一开始我们设定的异常处理函数中了。

 

Leave a Reply

Your email address will not be published. Required fields are marked *