Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/478.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express server未退出进程并重新释放端口_Javascript_Node.js_Express_Process_Nodemon - Fatal编程技术网

Javascript Express server未退出进程并重新释放端口

Javascript Express server未退出进程并重新释放端口,javascript,node.js,express,process,nodemon,Javascript,Node.js,Express,Process,Nodemon,我在节点应用程序中有一个express服务器。我需要能够使用调试器运行此节点应用程序。我还需要能够停止和重新启动服务器轻松无需绑定它运行的端口。我需要点击关机按钮进行清理,我喜欢这样做: const server=app.listen(端口,()=>{ log(“在端口上侦听任何内容”); }); process.on('SIGINT',function(){ 服务器关闭(()=>{ log(chalk.blue(“关闭服务器”); //一些清理代码 process.exit(); }); })

我在节点应用程序中有一个express服务器。我需要能够使用调试器运行此节点应用程序。我还需要能够停止和重新启动服务器轻松无需绑定它运行的端口。我需要点击关机按钮进行清理,我喜欢这样做:

const server=app.listen(端口,()=>{
log(“在端口上侦听任何内容”);
});
process.on('SIGINT',function(){
服务器关闭(()=>{
log(chalk.blue(“关闭服务器”);
//一些清理代码
process.exit();
});
});
我的启动脚本使用nodemon在保存时重新启动。以下是my package.json中与此相关的部分:

{
“脚本”:{
“开始:调试”:“节点--inspect-r tsconfig path/register-r ts节点/register./src/server.ts”,
“开始”:“nodemon”,
},
“节点示意图”:{
“忽略”:[…],
“手表”:[“src”],
“exec”:“npm运行开始:调试”,
“分机”:“ts”
},
“配置”:[
{
“类型”:“节点”,
“请求”:“附上”,
“名称”:“节点:Nodemon”,
“processId”:“${command:PickProcess}”,
“重启”:正确,
“协议”:“检查员”
}
]
}
这似乎奏效了。它正确启动,可通过节点调试器访问,并在保存时使用nodemon重新启动。当我点击
ctrl+c
时,服务器关闭并记录
“关闭服务器”
。但是,即使在记录该get之后,节点也会记录
等待调试器断开连接…
。当我再次点击
ctrl+c
并重新运行
npm start
时,我收到一个崩溃消息说
错误:侦听EADDRINUSE:地址已在使用中:::端口


这里怎么了?我的服务器似乎正在正常关闭,但调试器似乎没有成功关闭,而且还有一个节点进程占用该端口。很难干净地启动和停止我的服务器以及调试问题。

要断开调试器的连接,需要关闭包含调试器连接的Chrome选项卡。这将允许应用程序的上一个实例完全退出。

您是否已停止或分离调试客户端?听起来可能它仍在处理一些事情,因此调试服务器还没有关闭?我不知道如何手动或编程关闭。有什么想法吗?你用什么做调试器?我用的是chrome的node debugger然后,关闭运行调试器的选项卡。这将断开调试器的连接。