我有一个简单的 Node.js 机器人,它每秒向 rest API 发出一个 HTTP 请求。
如果返回的数据是正确的,那么我构造一个 URL 我 HTTP 发布。
一切正常,但是在运行~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 请求。
我遇到了同样的问题并解决了它!
尝试:
sudo vi /etc/hosts
并添加:
127.0.0.1 本地主机
到主机
症状是无法解析远程地址。
原因可能是很多事情。首先,尝试通过尝试直接解析地址来查看它是否特定于节点:
$ nslookup www.rest-api.com
或:
$ dig www.rest-api.com
如果这不起作用,则说明您遇到了连接问题。它可以是任何东西。如果您使用的是 DHCP,请尝试查看您的 DHCP 租约持续多长时间。
但是,如果这确实工作正常,但您的节点应用程序仍然失败,您可能会遇到以下情况:https://github.com/nodejs/node/issues/5436 ,这是底层库中的错误。您可以实施该线程中提到的解决方法,即通过以下参数指定 IP 版本系列{ family: 4 }
作为请求选项的一部分。
我遇到了这个问题,因为我的 URL 中有拼写错误 - 路径不存在。必须小心长子域 URL。我在使用邮递员控制台时发现了这个问题 - 可通过转到查看>显示邮递员控制台来访问。
当我没有选择我想使用的环境时,我在邮递员中遇到了此错误。因此,我尝试调用的变量未定义。