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

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

你可以这样做来获得有关错误的更多细节。

 .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意味着客户端能够与服务器进行通信,但服务器找不到请求。 此错误意味着域名系统无法find地址(dns.js用于NAPTR查询)。