来自Node.js上的HTTP请求的getaddrinfo ENOENT错误

时间:2013-03-20 15:26:37

标签: javascript node.js http request

以下是我的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);
};

1 个答案:

答案 0 :(得分:8)

您可以执行此操作以获取有关错误的更多详细信息。

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

如果您提供不存在的网址,则上面的代码会返回:

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查询)。