2012-04-26 61 views
2

如何獲得Node中的錯誤報告?我正在運行v0.6.15(使用簡單的osx安裝DMG),並且每當出現錯誤時,例如我嘗試使用未定義的變量,該進程就會停下來,但沒有指示爲什麼。如何查看node.js中的警告和錯誤消息?

我想即時通訊尋找節點版本的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的類,如果是使用其他任何特殊事項,但是,這不是。

+0

如何運行節點?我從來沒有見過這種行爲,並懷疑你正在運行一些捕捉所有輸出的腳本。 – Brad 2012-04-26 17:18:02

+0

當我在osx上運行節點時,不會發生什麼...... – ControlAltDel 2012-04-26 17:21:21

+0

只需在終端$節點file.js中直接打開它即可 – 2012-04-26 18:20:50

回答

1

雖然我同意@Brad的說法,但我從來沒有見過這樣的行爲,一般來說,如果您正在調試NodeJS程序並想知道是什麼導致它被殺死,您可以使用如下構造:

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

在您的腳本中。

請注意,許多人認爲你不應該在生產中使用這樣的構造,因爲未捕獲的異常通常表明你遇到了一個如此嚴重和意外的錯誤,唯一的恢復方法就是重新啓動。這可能會或可能不會適用於您的特定應用程序;在任何情況下,這可以用來調試。

但是,就像@Brad指出的那樣,你沒有看到什麼東西的最可能原因是控制檯輸出以某種方式被重定向。嘗試運行時不要使用「永久」,「主管」,「屏幕」或任何其他使用的進程封裝。

+0

謝謝。這很奇怪。檢查更新。 – 2012-04-26 18:29:41