我在使用node.js时遇到了一些奇怪的事情:
当我仅使用以下代码尝试使用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时,我得到了所需的网页。此外,在web主机日志中,我可以看到已经有一个成功的连接(如果我使用localhost
而不是127.0.0.1
,则不会发生这种情况。只是个小插曲)。
我之所以说这很有趣,是因为如果我把主机改成google或者诸如此类的东西,一切都正常,它会向控制台输出html。
我需要注意的是,我在cygwin下运行Node0.4.2,这是从源代码构建的。
以前有没有人见过/处理过这个?
发布于 2014-07-18 20:22:08
您可以使用以下命令更新节点
$ sudo n稳定
我在commonplace中遇到了这个问题,通过更新节点来解决
https://stackoverflow.com/questions/5286968
复制相似问题