Javascript 什么';错误的来源:getaddrinfo EAI_?

Javascript 什么';错误的来源:getaddrinfo EAI_?,javascript,node.js,error-handling,dns,shopify,Javascript,Node.js,Error Handling,Dns,Shopify,我的服务器今天抛出了这个错误,这是我以前从未见过的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)

我的服务器今天抛出了这个错误,这是我以前从未见过的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)
我想知道这是否与DynDns DDOS攻击有关,该攻击影响了Shopify和今天的许多其他服务


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

EAI\u再次是DNS查找超时错误,表示是网络连接错误或代理相关错误

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

  • dns.js用于节点获取域的ip地址(简而言之)
更多信息:

将npm更新为最新版本为我解决了这个问题

npm install npm@latest

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

@xerq指出的没错,这里还有一些参考资料

我遇到了同样的错误,我通过更新windows操作系统中此位置下的“hosts”文件解决了这个问题

C:\Windows\System32\drivers\etc


希望能有帮助

这是与主机文件设置相关的问题。 将以下行添加到hots文件中 在ubutu中:/etc/hosts

127.0.0.1   localhost
在windows中:c:\windows\System32\drivers\etc\hosts

127.0.0.1   localhost

OP的错误指定了一个主机(
my store.myshopify.com
)。 我遇到的错误在所有方面都是相同的,只是没有指定域

我的解决方案可能会帮助其他在这里被标题“Error:getaddrinfo EAI_”所吸引的人

我在尝试从最初开发代码的另一个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,
   },
 };

。。。解决了问题。

如果您在Firebase云功能中遇到此错误,这是由于免费层的限制(仅允许Google服务使用出站网络)

升级到火焰火焰计划以使其工作


在对docker容器中运行的GraphQL API应用程序进行了一次简单的更新之后,我开始出现此错误(尽管堆栈跟踪不同)。无论出于何种原因,容器都难以解析API使用的后端服务

在四处查看我构建的docker base图像(节点:13 alpine,顺便提一句)是否做了一些更改后,我决定尝试最古老的计算机科学技巧重新启动。。。我停下来启动了docker容器,一切都恢复了正常


显然,这并不是解决根本问题的一个有意义的解决方案——我只是发布这篇文章,因为它确实为我解决了问题,而没有深入到兔子洞的深处

我对AWS和Serverless也有同样的问题。我尝试了
eu-central-1
区域,但它不起作用,因此我不得不将其更改为
us-east-2

如果您从docker容器中得到此错误,例如,在alpine容器中运行
npm install
时,原因可能是容器启动后网络发生了更改

要解决此问题,只需停止并重新启动容器

docker-compose down
docker-compose up
来源:

如前所述,这是一个DNS超时问题


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

启用Blaze,但仍然无法工作?


很可能需要从正确的路径设置
.env
require('dotenv').config({path:uu dirname+'./...env'})(或任何其他路径)。只需将
.env
文件放在
函数
目录中,从中部署到
Firebase
在我的案例中,问题是docker networks ip分配范围,有关详细信息,请参见更新包管理器如何修复与包管理器无关的错误?@anerjan辩护,当运行
npm install
时可能会发生这种情况,我想象停止更新并重新启动所需的时间他已经连接回互联网。你刚刚为我节省了数小时的研究时间。Kudos没错,刚刚升级到按使用付费的blaze plan for zero cost(这是spark的免费结转层数据)你能@NullPointer,详细说明解决方案吗,我仍然收到错误`错误:无法处理请求`我有相同的问题,已经升级到blaze帐户,但问题仍然相同。我正在尝试使用邮递员。由于某种原因,我在尝试通过
process.env.SOMETHING
访问我的SMTP凭据时遇到了这种情况,即使启用了
Blaze
。我怀疑在主机上重置了网络,之后容器似乎出现了DNS错误。有没有什么方法可以配置容器在不停止它们的情况下生存下来?我就是这样。重启修复了这个问题!