如何处理“未处理”错误“事件”错误 – NodeJS

我正在尝试Node.js。 这是我玩的非常简单的代码

var http = require('http'); http.get('www.google.com', function(res) { console.log(res.statusCode); }); 

运行此代码时出现以下错误

 events.js:141 throw er; // Unhandled 'error' event ^ Error: connect ECONNREFUSED 127.0.0.1:80 at Object.exports._errnoException (util.js:837:11) at exports._exceptionWithHostPort (util.js:860:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1060:14) 

在阅读错误输出时,我添加了两行代码来处理下面的错误事件

 var http = require('http'); http.get('www.google.com', function(res) { console.log(res.statusCode); res.on('error', function(error) { console.error(error); }); }); 

但同样的错误信息仍然存在,我在哪里搞砸了?

您必须在http.get使用URL而不是域名,除非您将options指定为对象:

options可以是对象或string。 如果options是一个string,则会使用url.parse()自动分析。

比较:

 var http = require('http'); http.get('http://www.google.com/', function(res) { console.log(res.statusCode); }); 

附:

 var http = require('http'); http.get({host:'www.google.com'}, function(res) { console.log(res.statusCode); }); 

这两个工作。


注意我以为这是一个networking问题,但实际上发生了什么事情在选项中的host默认是localhost所以当它无法parsingstring,并保留默认选项。 就好像代码一样:

 var http = require('http'); http.get({}, function(res) { console.log(res.statusCode); });