错误的根源是什么:getaddrinfo EAI_AGAIN?

2020/11/19 04:42 · javascript ·  · 0评论

我的服务器今天抛出了这个,这是我从未见过的Node.js错误:

Error: getaddrinfo EAI_AGAIN my-store.myshopify.com:443
    at Object.exports._errnoException (util.js:870:11)
    at errnoException (dns.js:32:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:78:26)

我想知道这是否与今天影响Shopify的DynDns DDOS攻击有关。这是有关此的文章。

我的主要问题是怎么dns.js办?它是节点的哪一部分?如何在其他域中重新创建此错误?

如果您使用Firebase Cloud Functions遇到此错误,则是由于免费套餐的限制(仅允许Google服务使用出站网络)。

升级到FlameBlaze计划即可使用。

在此处输入图片说明

EAI_AGAIN是DNS查找超时错误,表示它是网络连接错误或与代理相关的错误。

我的主要问题是dns.js做什么?

  • dns.js在那里供节点获取域的IP地址(简而言之)。

Some more info:
http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

If you get this error from within a docker container, e.g. when running npm install inside of an alpine container, the cause could be that the network changed since the container was started.

To solve this, just stop and restart the container

docker-compose down
docker-compose up

Source: https://github.com/moby/moby/issues/32106#issuecomment-578725551

这是与主机文件设置有关的问题。将以下行添加到Ububtu中的热点文件中:/ etc / hosts

127.0.0.1   localhost

在Windows中:c:\ windows \ System32 \ drivers \ etc \ hosts

127.0.0.1   localhost

OP的错误指定了主机(my-store.myshopify.com)。除了未指定域外,我在所有方面遇到的错误都是相同的。

我的解决方案可能会对标题为“错误:getaddrinfo EAI_AGAIN”的其他人有所帮助

尝试从最初开发代码的另一台VM上服务NodeJs和VueJs应用程序时遇到错误。

该文件vue.config.js读取:

 module.exports = {
   devServer: {
     host: 'tstvm01',
     port: 3030,
   },
 };

在原始计算机上使用时,启动输出为:

App running at:
- Local:   http://tstvm01:3030/ 
- Network: http://tstvm01:3030/

在VM上使用相同的设置,tstvm07我得到的错误与OP描述的错误非常相似:

 INFO  Starting development server...
 10% building modules 1/1 modules 0 activeevents.js:183                              
      throw er; // Unhandled 'error' event
      ^

Error: getaddrinfo EAI_AGAIN
    at Object._errnoException (util.js:1022:11)
    at errnoException (dns.js:55:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)

如果还不明显,请vue.config.js改为阅读...

 module.exports = {
   devServer: {
     host: 'tstvm07',
     port: 3030,
   },
 };

...解决了这个问题。

@xerq正确指出,这里有更多参考
http://www.codingdefined.com/2015/06/nodejs-error-errno-eaiagain.html

我遇到了同样的错误,我通过更新Windows操作系统中此位置下存在的“主机”文件解决了该问题

C:\ Windows \ System32 \ drivers \ etc

希望能帮助到你!!

在对在Docker容器内操作的GraphQL API应用程序进行了小规模更新后,我开始遇到此错误(尽管堆栈跟踪不同)。无论出于何种原因,该容器都难以解决API使用的后端服务。

在四处看看是否从(node:13-alpine)构建的docker基本映像中进行了一些更改之后,我决定尝试使用最古老的计算机科学技巧进行重新启动...我停下并启动了docker容器,一切都恢复了正常。

显然,这并不是解决潜在问题的有意义的解决方案-我只是发布此问题,因为它确实为我解决了问题,而又没有深深地陷入困境。

正如xerq的出色回答所解释的,这是DNS超时问题。

我想为使用Linux Linux的Windows子系统的用户提供另一个可能的答案-在某些情况下,Windows从睡眠状态恢复后,客户端操作系统中似乎会出现一些问题重新启动主机操作系统将解决这些问题(重新启动WSL服务也可能会这样做)。

我在AWS和Serverless上也遇到了同样的问题。我尝试过eu-central-1区域,但是它没有,所以我不得不将其更改us-east-2为示例。

如果您在任何一个本地主机上都没有获得该许可证,则意味着由于免费套餐的限制,您必须升级您的计划

将npm更新为最新版本可以为我解决此问题。

npm install npm@latest

此问题与您的网络连接有关。因此可以是暂时的。在稳定的Internet连接上,几乎没有观察到此问题。

本文地址:http://javascript.askforanswer.com/cuowudegenyuanshishenmegetaddrinfo-eai_again.html
文章标签: ,   ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!