我有一个名为 client.js 的文件require("child_process").fork()
到 source.js ,只是为了让一切更清洁。但是,在fork中的某个位置,当我使用EADDRINUSE
创建http
服务器时,它正在执行另一个进程并导致connect
错误。我该如何解决这个问题,以便创建一个http
服务器而不会出错?
我的source.js看起来(有点):
app.use(serve(cwd));
app.use(function(req, res){ // code });
var server = http.createServer(app);
server.listen(8080);
server.on("listening", function(){
console.log("server running with: ");
console.log(" port: "+process.env.PORT);
});
答案 0 :(得分:1)
在系统级,fork()有点像:
因此,在第3步中,fork尝试打开AGAIN您的侦听端口,这就是您收到错误的原因
传统的解决方案可能是在执行服务器之前分叉 听,但在节点意义上,从理论上说,首先应该没有任何理由进行分叉,如果你要求另一个“节点”进程,那就更少了。
可能你可以使用某种异步调用()或依赖你的节点版本来解决它,甚至使用Promises