7

下面是我的 Node.js HTTP 响应请求程序的代码。

一旦我使用我明确知道不存在的网站,错误消息将通知我错误:getaddrinfo ENOENT

我想了解更多有关此错误的信息。是什么产生的?错误的细节是什么?404'会产生它吗?

var hostNames = ['www.pageefef.com'];

for (i; i < hostNames.length; i++){

    var options = {
            host: hostNames[i],
            path: '/'
    };

  (function (i){
    http.get(options, function(res) {

      var obj = {};
      obj.url = hostNames[i];
      obj.statusCode = res.statusCode;
      // obj.headers = res.headers;

      console.log(JSON.stringify(obj, null, 4));
    }).on('error',function(e){
      console.log("Error: " + hostNames[i] + "\n" + e.message);
    });
  })(i);
};
4

1 回答 1

8

您可以这样做以获取有关错误的更多详细信息。

.on('error',function(e){
   console.log("Error: " + hostNames[i] + "\n" + e.message); 
   console.log( e.stack );
});

如果你给出一个不存在的 url,那么上面的代码会返回:

getaddrinfo ENOTFOUND
Error: getaddrinfo ENOTFOUND
    at errnoException (dns.js:37:11)
    at Object.onanswer [as oncomplete] (dns.js:124:16)

http.request() 从 http.ClientRequest 类抛出错误。否 404 不会产生此错误。错误 404 表示客户端能够与服务器通信,但服务器找不到请求的内容。此错误表示域名系统未能找到地址(dns.js 用于NAPTR查询)。

于 2013-03-20T15:56:54.373 回答