Everytime I run cluster.fork(), I get a Error: bind EADDRINUSE
Everytime I run cluster.fork(), I get a Error: bind EADDRINUSE
我正在使用 node.js,并且正在使用集群模块。每次我 运行 cluster.fork(),我总是得到一个
throw er; // Unhandled 'error' event
Error: bind EADDRINUSE
at exports._errnoException (util.js:746:11)
at cb (net.js:1205:33)
at rr (cluster.js:592:14)
at Worker.<anonymous> (cluster.js:563:9)
at process.<anonymous> (cluster.js:692:8)
at process.emit (events.js:129:20)
at handleMessage (child_process.js:324:10)
at Pipe.channel.onread (child_process.js:352:11)
我一直在用谷歌搜索这个,但我不知道这是怎么回事,因为我没有传递任何端口号。
谢谢
编辑:发布代码
var setupWorkers = function() {
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < 5; i++) {
cluster.fork();
}
}
这是在 app.js 中调用的函数,我 运行 通过调用节点 app.js
您提供的堆栈跟踪表明 EADDRINUSE
来自 net
模块。 EADDRINUSE
通常意味着您正在尝试多次收听 IP/port 组合。因此,例如,如果这是一个集群 Web 服务器,则可能您的所有工作人员都试图绑定到同一 IP 地址上的端口 80。没有更多的代码,就不可能知道发生了什么。
您在后续评论中给出的示例代码对我来说不会触发 EADDRINUSE
。取而代之的是 cluster.fork is not a function
错误,因为在调用 cluster.fork()
.
之前没有检查 cluster.isMaster
我用所有线程启动服务器不止一次,所以端口已经绑定
我正在使用 node.js,并且正在使用集群模块。每次我 运行 cluster.fork(),我总是得到一个
throw er; // Unhandled 'error' event
Error: bind EADDRINUSE
at exports._errnoException (util.js:746:11)
at cb (net.js:1205:33)
at rr (cluster.js:592:14)
at Worker.<anonymous> (cluster.js:563:9)
at process.<anonymous> (cluster.js:692:8)
at process.emit (events.js:129:20)
at handleMessage (child_process.js:324:10)
at Pipe.channel.onread (child_process.js:352:11)
我一直在用谷歌搜索这个,但我不知道这是怎么回事,因为我没有传递任何端口号。
谢谢
编辑:发布代码
var setupWorkers = function() {
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < 5; i++) {
cluster.fork();
}
}
这是在 app.js 中调用的函数,我 运行 通过调用节点 app.js
您提供的堆栈跟踪表明 EADDRINUSE
来自 net
模块。 EADDRINUSE
通常意味着您正在尝试多次收听 IP/port 组合。因此,例如,如果这是一个集群 Web 服务器,则可能您的所有工作人员都试图绑定到同一 IP 地址上的端口 80。没有更多的代码,就不可能知道发生了什么。
您在后续评论中给出的示例代码对我来说不会触发 EADDRINUSE
。取而代之的是 cluster.fork is not a function
错误,因为在调用 cluster.fork()
.
cluster.isMaster
我用所有线程启动服务器不止一次,所以端口已经绑定