在Node.js + Express中记录错误的任何实际稳定方法?

时间:2012-12-11 06:08:41

标签: node.js express

所以,我一直在看这个安静片刻。从Node.js 0.8.15开始,http://nodejs.org/api/process.html#process_event_uncaughtexceptionEvent: '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崩溃?

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

1 个答案:

答案 0 :(得分:9)

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

使用Forever和Winston

让它崩溃

如果您只想保持自己的应用程序,可以考虑使用forever from NodeJitsu。你可以设置一个阈值,它应该重新启动你的应用程序的次数,如果你有一个讨厌的错误,它只是不会熬夜。不允许您的应用在未捕获异常的情况下循环可能会使应用程序处于无效状态并导致更多异常。为什么不让它崩溃并永远为你重新启动它。

退出前记录

要捕获并记录错误,请尝试使用winston捕获并记录未捕获的异常,然后退出。请参阅有关使用Winston处理未捕获的异常的部分,其中介绍了如何处理此确切方案。如果winston正在登录某个文件,您可以参考该文件并查看您的应用程序频繁崩溃的频率以及原因。

结果

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

亚历