如何处理“未处理”错误“事件”错误 – 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); });