【问题标题】:Stop application from crashing in Express.js阻止应用程序在 Express.js 中崩溃
【发布时间】:2015-10-28 15:13:43
【问题描述】:

Express.js 关于未捕获异常的行为对我来说是相当随机的。有时,请求返回代码500 内部错误并继续运行,有时它会崩溃[nodemon] app crashed - waiting for file changes before starting...。后面什么时候发生?我可以通过返回所有带有代码500 的错误请求来阻止它崩溃吗?

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    这些错误属于两个不同的类别。

    第一个错误500 internal error 属于操作错误类别。此类错误是由于外部环境(如套接字挂起或请求超时)而发生的。应用程序抛出错误,但稍后在执行期间处理。服务器响应错误 500 状态代码而不是通常的 200。发送响应后它继续工作。

    第二个错误[nodemon] app crashed - waiting for file changes before starting... 属于程序员错误类别。当发生由程序员错误引起的未处理错误时,就会发生这种情况,从而使其成为错误。这可能是因为您的代码无法被 javascript 解析器解析,从而使其成为语法错误。在某些情况下,它也可能由于语义错误而发生,即。关于缺少模块或未定义变量的参考错误。

    在出现此类错误后,服务器停止工作,并在检测到代码更改时由 nodemon 启动。

    此类错误应不予处理,因为尝试处理它们可能会导致程序运行时出现不可预知的后果。

    我向您推荐一篇关于 node.js 中的错误处理的精彩文章 https://www.joyent.com/developers/node/design/errors

    【讨论】:

    • 这并不完全正确。我看到应用程序崩溃并出现语义错误,例如Uncaught ReferenceError。它发生在第三方库回调期间并导致应用程序崩溃。
    • 没看过链接的文章,让我把这件事说清楚。你真的是说如果应用程序在生产中崩溃了,你应该去改变服务器上的一些文件让它重新启动!?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-01
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多