【问题标题】:Error: getaddrinfo ENOTFOUND错误:getaddrinfo ENOTFOUND
【发布时间】:2017-10-16 00:43:53
【问题描述】:

我有一个简单的 Node.js 机器人,它每秒向一个休息 API 发出一个 HTTP 请求。

如果返回的数据是正确的,那么我构建一个我 HTTP POST 的 URL。

一切正常,但运行约 4-5 小时后出现此错误

0|server   | error:  Error: getaddrinfo ENOTFOUND www.rest-api.com www.rest-api.com:443
0|server   |     at errnoException (dns.js:28:10)
0|server   |     at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:73:26)

谁能解释一下为什么会这样?

重启服务器后一切正常。

我正在使用axios 发出 http 请求。

【问题讨论】:

  • 您多久向服务器发送一次请求?
  • 这个错误是什么意思?

标签: node.js axios


【解决方案1】:

我遇到了同样的问题并解决了!

尝试:

sudo vi /etc/hosts

并添加:

127.0.0.1 本地主机

到主机

【讨论】:

  • 有人能解释一下这个解决方案为什么/如何工作吗?
【解决方案2】:

症状是无法解析远程地址。

原因可能有很多。首先,通过尝试直接解析地址来尝试查看它是否特定于节点:

$ nslookup www.rest-api.com

或者:

$ dig www.rest-api.com

如果这不起作用,则说明您遇到了连接问题。它可以是任何东西。如果您使用 DHCP,请尝试查看您的 DHCP 租约持续多长时间。

但是,如果确实可以正常工作但您的节点应用程序仍然失败,您可能会遇到这种情况:https://github.com/nodejs/node/issues/5436,这是底层库中的错误。您可以实现该线程中提到的解决方法,即通过以下参数 { family: 4 } 指定 IP 版本系列作为您的请求选项的一部分。

【讨论】:

    【解决方案3】:

    我遇到这个问题是因为我的 URL 中有错字 - 路径不存在。必须小心长子域 URL。我在使用 Postman 控制台时发现了这个问题 - 可以通过查看 > 显示 Postman 控制台来获得。

    【讨论】:

    • 我的网址中有同样的错字 - 谢谢你提到这一点,很难注意到这一点
    猜你喜欢
    • 2018-03-03
    • 2014-10-20
    • 2018-05-24
    • 2016-04-20
    • 2018-01-31
    • 2021-07-18
    • 1970-01-01
    • 2017-01-28
    • 2014-06-05
    相关资源
    最近更新 更多