2017-02-20 75 views
0

我想要一个系统,它会根据各自发生的错误的严重程度向我发送文本消息或电子邮件。我已经对这个问题做了一些研究,但是我还没有能够简化问题。node.js的集中式错误处理和报告

总而言之,我的最终目标是在我的生产服务器出现问题时收到通知。如果出现严重问题,我根本没有发现,我已经使用了进程的uncaughtException以及通过单独的API调用调用的特定路由,我可以简单地使用try catch块。

我的第一个问题是我无法处理直接通过我的主服务器文件从不同路由抛出的错误。

其次是我将不得不在每条路线上编写相同的代码以进行异常处理。如果有什么东西可以听取主服务器文件中的所有错误,那么我可以轻松地做到这一点。

回答

0

您可以使用错误快速处理中间件:

app.use(function (err, req, res, next) { 
    console.error(err.stack); 
    // do whatever you need to send a notification 
    res.status(500).send('Internal error'); 
}); 

参见错误在快速处理文档:

一切都解释那里非常好。

+0

感谢您的时间rsp。我确实尝试了这个顺便说一句,但也许我没有妥善安置它。 –

+0

在其中一个API的侦听器(路由)函数中 - 让我们假设是否有引用错误,并且我希望它通过中央模块进行日志记录,但是这个中间件通过express并没有听到它。 –

+0

你想要的代码? –