簡體   English   中英

如何處理“未處理”錯誤'事件'錯誤 - NodeJS

[英]How to deal with “Unhandled 'error' event” error - 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); }); }); 

但同樣的錯誤信息仍然存在,我在哪里搞砸了?

除非將options指定為對象,否則必須在http.get使用URL而不是域名:

options可以是對象或字符串。 如果options是一個字符串,則會使用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);
});

這兩項工作。


注意我起初認為這是一個網絡問題,但實際上選項中host的默認值是localhost因此當它無法解析字符串並保留默認選項時。 好像代碼是:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM