我遇到了Node.js的一些奇怪的事情:Node.js的process.nextTick錯誤
當我嘗試使用HTTP客戶端,只有下面的代碼:
require('http').get({host:'127.0.0.1',port:9000, path:'/'}, function(res){
var data = '';
res.setEncoding('utf8');
res.on('data', function(chunk){
data += chunk;
});
res.on('end', function(){
console.log(data);
});
});
將引發錯誤:
node.js:116
throw e; // process.nextTick error, or 'error' event on first tick
^TypeError: Cannot call method 'emit' of undefined
at Socket.<anonymous> (http.js:1174:9)
at Socket.emit (events.js:42:17)
at Array.<anonymous> (net.js:799:27)
at EventEmitter._tickCallback (node.js:108:26)
當我瀏覽到127.0.0.1:9000在瀏覽器中,我得到了想要的網頁。此外,在網絡主機日誌中,我可以看到有成功的連接(如果使用localhost
而不是127.0.0.1
,則不會發生這種情況)。
我說這很有趣,因爲如果我更改主機爲谷歌或whatnot一切工作正常,它吐出html到控制檯。
我應該注意到,我正在運行cygwin下的節點0.4.2,它是從源代碼構建的。
任何人看到/處理此之前?
我今天遇到了同樣的問題節點(與節點0.4.2解決了節點在Arch Linux上),當試圖獲取cnbc.com網址的內容時,雖然不幸我不知道如何解決它(還沒有)... – dhofstet 2011-03-13 16:31:47
@dhofstet,這是否與你一致?你能定義一個可重複使用的情況嗎?在正常情況下出現故障的情況下,您是否注意到任何不同情況?這是如此令人沮喪 – davin 2011-03-13 18:03:02
我開了票呢:https://github.com/joyent/node/issues/784 – dhofstet 2011-03-14 16:35:53