2

如何在 Node 中获取错误报告?我正在运行 v0.6.15(使用简单的 osx 安装 DMG),每当出现错误时,比如说我尝试使用未定义的变量,该过程就会停止而没有说明原因。

我想我正在寻找 PHP 的 error_reporting(E_ALL) 的节点版本;

有什么建议么?

==编辑==

奇怪......好吧......所以我注意到我在运行的文件中得到了很好的错误,但不是在我“需要”的文件中

我正在运行的文件只有这个代码

process.on('uncaughtException', function(err) {
  console.log(err);
});

var ImageProcessor = require('./ImageProcessor').ImageProcessor;
var imageProcessor = new ImageProcessor();

imageProcessor.imageRequestEnd();

imageProcessor 是一个 mootools 类,如果这很重要,但不使用其他任何特殊的东西。

4

1 回答 1

2

虽然我同意@Brad 我从未见过这样的行为,但总的来说,如果您正在调试 NodeJS 程序并想知道是什么导致它被杀死,您可以使用这样的构造:

process.on('uncaughtException', function(err) {
  console.log(err);
});

在你的脚本中。

请注意,许多人争辩说您不应该在生产中使用这样的构造,因为未捕获的异常通常表明您遇到了一个如此严重和意外的错误,以至于恢复的唯一方法是重新启动。对于您的特定应用程序而言,这可能是正确的,也可能不是;无论如何,这对调试很有用。

但是,就像@Brad 指出的那样,您看不到任何东西的最可能原因是控制台输出以某种方式被重定向。尝试在不使用“forever”、“supervisor”、“screen”或您正在使用的任何其他进程包装器的情况下运行。

于 2012-04-26T18:03:37.343 回答