5

所以,我一直在安静地看着这个。从 Node.js 0.8.15 开始,Event: 'uncaughtException'http : //nodejs.org/api/process.html#process_event_uncaughtexception说:

Don't use it, use domains instead. If you do use it, restart your application after every unhandled exception!

http://nodejs.org/api/domain.html上的域说:

Stability: 1 - Experimental

(他们也拒绝为我工作——我的应用程序仍然崩溃)

我要做的就是不让我的 Node.js + Express 应用程序崩溃。

任何人成功地将所有错误记录到文件(预期和意外的语法错误)并且不让 Node.js 崩溃的任何实际方式?

我听过很多理论上的答案,任何有效的实际代码?

4

1 回答 1

9

我遇到过类似的情况,并且一直在使用未捕获的异常。它可能并不漂亮,但通过一些额外的工具,我认为你最终可以得到一个不错的结果。

使用 Forever 和 Winston

让它崩溃

如果您只想让您的应用程序保持正常运行,可以考虑从 NodeJits 中永久使用。你可以设置一个阈值,它应该重启你的应用程序的次数,以防你遇到一个讨厌的错误并且它不会继续存在。在发生未捕获的异常时不允许您的应用程序循环可能会使应用程序处于无效状态并导致更多异常。为什么不让它崩溃并永远为您重新启动它。

退出前记录

要捕获并记录错误,请尝试使用winston捕获并记录未捕获的异常,然后退出。请参阅其自述文件中关于使用 Winston 处理未捕获异常的部分,该部分解释了如何处理这种确切情况。如果 winston 正在记录到一个文件,您可以参考它并查看您的应用程序崩溃的频率以及原因。

结果

结合这两者,您应该能够设置一个可以参考的未捕获异常日志文件,让您的应用程序在大多数情况下保持正常运行,并避免忽略可能使您的应用程序处于无效状态的异常。

亚历克斯

于 2012-12-13T18:32:01.073 回答