完整错误:
(node:8852) UnhandledPromiseRejectionWarning: Error: connect EADDRINUSE 104.16.58.5:443
at Object._errnoException (util.js:1022:11)
at _exceptionWithHostPort (util.js:1044:20)
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
(node:8852) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:8852) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
我已安装的节点模块:
其他信息:
答案 0 :(得分:0)
错误显示EADDRINUSE-表示您的应用使用的端口已被其他进程使用(某些使用443作为http默认端口的http服务器)
您可以从443更改端口,也可以找到使用此端口的进程并验证是否需要该进程
要在Linux运行上查找进程,请执行以下操作:
netstat -an | grep :443
第二列将告诉您哪个processId使用此端口
在Windows上:
netstat -aon | findstr 443
答案 1 :(得分:0)
由于这是一个connect EADDRINUSE 104.16.58.5:443
错误,因此您的源计算机上可能没有免费的临时TCP端口。
状态TIME_WAIT
中可能有许多(旧)TCP连接。
请尝试增加临时端口范围。
有关参考,请参见https://github.com/nodejs/node-v0.x-archive/issues/3796和https://github.com/nodejs/help/issues/434
答案 2 :(得分:0)
Read the Oracle advise (click here)
在Windows上为重负载调整TCP设置
指导搜索跨越多个物理分区的基础搜索体系结构使用TCP / IP端口和非阻塞NIO SocketChannel来连接到搜索引擎。这些连接在TIME_WAIT状态下保持打开状态,直到操作系统使它们超时为止。因此,在重负载条件下,运行“路由”模块的计算机上的可用端口可能会用完。 在Windows平台上,默认超时为120秒,端口的最大数量约为4,000,因此每秒的最大连接速率为33。如果索引具有四个分区,则每个搜索都需要四个端口,这提供了每秒8.3个查询的最大查询速率。 (最大端口数/超时时间)/分区数=最大查询率。
如果超过该速率,则可能会因为TCP / IP端口的电源已用尽而看到故障。症状包括吞吐量下降和指示网络连接失败的错误。您可以使用大多数操作系统上提供的netstat实用程序,通过观察系统在负载下的情况来诊断此问题。
为避免端口用尽并支持高连接速率,请减小TIME_WAIT值并扩大端口范围。
注意:由于这些操作系统的默认连接速率较高,因此在UNIX系统上通常不会出现此问题。
要设置TcpTimedWaitDelay(TIME_WAIT):
使用regedit命令访问HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ TCPIP \ Parameters注册表子项。
创建一个名为TcpTimedWaitDelay的新REG_DWORD值。
将值设置为60。
停止并重新启动系统。
设置MaxUserPort(临时端口范围):
使用regedit命令访问HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ TCPIP \ Parameters注册表子项。
创建一个名为MaxUserPort的新REG_DWORD值。
将此值设置为32768。
停止并重新启动系统。