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

the*_*age 7 javascript http request node.js

下面是我的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);
};
Run Code Online (Sandbox Code Playgroud)

use*_*109 8

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

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

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

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

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