【问题标题】:getaddrinfo ENOENT error from HTTP request on Node.js [duplicate]来自 Node.js 上的 HTTP 请求的 getaddrinfo ENOENT 错误 [重复]
【发布时间】:2013-03-20 23:56:54
【问题描述】:

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

【问题讨论】:

    标签: javascript node.js http request


    【解决方案1】:

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

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

    【讨论】:

    • 这个详细的错误报告正是我要找的,但我感觉就像一条被车抓住了的狗,不知道如何处理它。一旦出现此错误,我该怎么办?因为它们种类繁多,我应该分析它,还是从我的抓取列表中删除这些失效的 URL?
    • 错误表示 url 不可访问,因此请与您的 ISP 确认是否未阻止。否则,您应该删除网址。
    猜你喜欢
    • 2016-12-12
    • 2012-03-23
    • 1970-01-01
    • 2019-01-06
    • 2015-10-03
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    • 1970-01-01
    相关资源
    最近更新 更多