检测到错误时,Node.js应用程序崩溃

时间:2017-01-30 17:07:05

标签: node.js express

我的node.js(Express.js)应用程序每次发生错误时都会崩溃(语法/未定义变量等等)。

这里有任何解决方案只是记录它而不是崩溃我的应用程序?我读了node.js错误的文档,但找不到解决方案。 https://nodejs.org/api/errors.html

我从快速生成器生成应用程序。我在谈论这个,这里是语法错误,变量未定义但服务器正在运行:http://prnt.sc/e2b7ce它没有崩溃

3 个答案:

答案 0 :(得分:1)

这取决于错误,但大部分时间的答案都是否定的。 如果错误导致应用程序崩溃,则可能是应用程序需要运行的内容。 如果您在谈论特定错误,则需要分享这些错误的详细信息 这可能是关于node中错误处理的一个很好的解读 Node.js Best Practice Exception Handling

答案 1 :(得分:0)

你可以捕获错误,但你不应该对你的错误做错,因为它在这样的错误后处于不可预测的状态,最好重新启动整个应用程序(nodemon,永远)。错误就像没有达到数据库,验证,承诺中的错误,......你应该抓住它。

对于第二个问题,您可以将此事件用于未处理的错误

process.on('uncaughtException', err => {})

答案 2 :(得分:0)

我解决了这个问题。变量未定义时(错误)

我在应用程序的主app.js文件的最后插入了这段代码 (response.error是我自定义消息的自定义函数)

app.use(function(err, req, res, next) {
    res.status(err.status || 500).json(response.error(err.status || 500));
});