在开发过程中,我在NodeJS项目中犯了错误。错误导致这样的错误消息。
events.js:85
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at exports._errnoException (util.js:742:11)
at Server._listen2 (net.js:1148:14)
at listen (net.js:1170:10)
at net.js:1253:9
at dns.js:82:18
at process._tickCallback (node.js:343:11)
没问题,我点击了ctrl+C
并重启了该过程,但我发现一些衍生的子进程仍处于活动状态。如何杀死根进程生成的所有进程?
示例代码:
module.exports.start = function(options) {
gulp.watch(['*.js'], onServerRestart);
onServerRestart();
var server;
function onServerRestart(e) {
if (server) server.kill();
server = require('child_process').spawn("node", ['--harmony', './server.js'], {stdio: "inherit", cwd: process.cwd() });
};
};
答案 0 :(得分:1)
添加此
process.on('uncaughtException', function(err) {
console.log(err);
server.kill();
process.kill();
});
解决了这个问题。有关如何在您的应用中处理此问题的任何建议吗?
答案 1 :(得分:1)
这意味着,即使您可能认为已退出所有服务器,但其中一个仍然在运行,这可能是您尝试访问的服务器。
因此,请转到您的终端并输入以下内容:
killall node
这应该解决它。
BAM。