Node.js events.js: 163 throw er;使用标志 --runInBand 执行 Jest 时

Posted

技术标签:

【中文标题】Node.js events.js: 163 throw er;使用标志 --runInBand 执行 Jest 时【英文标题】:Node.js events.js: 163 throw er; when executing Jest with flag --runInBand 【发布时间】:2017-05-17 09:50:56 【问题描述】:

在我们的package.json 中,我们将--runInBand flag 添加到脚本测试中,以便speed up travis 测试。我们团队中有 5 个人,他们都没有问题,但每次运行脚本时都会出现此错误。看起来是这样的:

events.js:163
  throw er; // Unhandled 'error' event
  ^

Error: connect EHOSTDOWN 169.254.169.254:80 - Local (192.168.8.46:63717)
    at Object.exports._errnoException (util.js:1050:11)
    at exports._exceptionWithHostPort (util.js:1073:20)
    at internalConnect (net.js:889:16)
    at lookupAndConnect (net.js:977:5)
    at Socket.realConnect (net.js:945:5)
    at Agent.connect [as createConnection] (net.js:77:22)
    at Agent.createSocket (_http_agent.js:195:26)
    at Agent.addRequest (_http_agent.js:157:10)
    at new ClientRequest (_http_client.js:212:16)
    at Object.request (http.js:26:10) 

脚本:

"test": "export APP_ENV=development && jest --no-cache --runInBand --forceExit",

如果我删除此标志,我不会收到此错误。不知道是不是和 Jest、Node、Travis 等有关,但是我一直在寻找解决它很长时间,我没有更多的想法。

我的版本是:

节点:v7.10.0

笑话:v19.0.2

操作系统:macOS Sierra 10.12.4

提前致谢。

【问题讨论】:

【参考方案1】:

您与 169.254.169.254:80 的套接字连接似乎有问题

您能否检查您的开发环境 (MacOS) 以便进行套接字连接?

我不是 Mac 大师,但 EHOSTDOWN 意味着你可以到达主机但不能进行套接字连接。

【讨论】:

您好,感谢您的回复。如何检查我的 mac 是否可以进行套接字连接?谢谢【参考方案2】:

它似乎与节点 v7.10 相关。我已经降级到 v7.9 并且工作正常。

Node 团队是 working on it,它将是下一个 v7.x 版本(可能会在下周发布)。

【讨论】:

以上是关于Node.js events.js: 163 throw er;使用标志 --runInBand 执行 Jest 时的主要内容,如果未能解决你的问题,请参考以下文章

Node.js ECONNREFUSED错误

Node.js 错误:连接 ECONNREFUSED

Node.js 错误:Elastic Beanstalk 主机上的 EADDRINUSE

在 node.js 中编写 ECONNRESET 错误和套接字连接检查

在 Windows 中生成 python ENOENT node.js

错误:在监听端口 444/443 时监听 EACCES 0.0.0.0:444 node.js