Node.js 如果在facebook messenger平台上再次发生EAI_错误,我该如何解决?

Node.js 如果在facebook messenger平台上再次发生EAI_错误,我该如何解决?,node.js,facebook,networking,dns,bots,Node.js,Facebook,Networking,Dns,Bots,我们用于facebook messenger平台的Node.js应用程序引发了以下错误。 我们使用“请求”模块连接到facebook graph api,该模块抛出了此错误。在我发现问题大约1小时后,问题没有做任何事情就解决了。所以现在它起作用了,但我担心什么时候它会再次发生。你能教我这个问题吗?如果有解决办法的话 { Error: getaddrinfo EAI_AGAIN graph.facebook.com:443 at Object.exports._errnoException

我们用于facebook messenger平台的Node.js应用程序引发了以下错误。 我们使用“请求”模块连接到facebook graph api,该模块抛出了此错误。在我发现问题大约1小时后,问题没有做任何事情就解决了。所以现在它起作用了,但我担心什么时候它会再次发生。你能教我这个问题吗?如果有解决办法的话

{ Error: getaddrinfo EAI_AGAIN graph.facebook.com:443
    at Object.exports._errnoException (util.js:949:11)
    at errnoException (dns.js:33:15)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:79:26)
  code: 'EAI_AGAIN',
  errno: 'EAI_AGAIN',
  syscall: 'getaddrinfo',
  hostname: 'graph.facebook.com',
  host: 'graph.facebook.com',
  port: 443 }

简短回答: 当您与DNS服务器失去连接或DNS设置错误时(包括但不限于完全或部分断开与internet的连接),就会发生这种情况。 也就是说:请检查您的有线或WiFi连接或您的互联网提供商是否没有(暂时)问题

详细信息: 发生这种情况时,我可以在调试器
调用堆栈中看到系统函数
getaddrinfo
失败。因此,看起来很简单的原因是——系统无法将主机名映射到IP(在您的情况下,找不到主机名“graph.facebook.com”)

事实上,当我尝试ping主机名时(我希望达到该主机名),我得到了与ping相同的错误,就像ping未知主机一样:

u@h:~$ ping someunknownhost.xyzdomain
ping: unknown host someunknownhost.xyzdomain
此外,当我恢复了与internet的连接,可以ping主机时,
node.js
的问题也消失了