Javascript 在windows平台上,PM2不支持Node.js for“;“优雅关机”;

Javascript 在windows平台上,PM2不支持Node.js for“;“优雅关机”;,javascript,node.js,api,server,pm2,Javascript,Node.js,Api,Server,Pm2,我试过这种方法- const server=app.listen(端口,()=>console.log('Project running on port'+port)); process.on('SIGINT',()=>{ console.info('接收到SIGINT信号') //停止服务器接受新连接并完成现有连接。 server.close(函数(err){ //如果出现错误,则记录并退出错误(1代码) 如果(错误){ 控制台错误(err) 进程。退出(1) } //关闭数据库连接并成功退出

我试过这种方法-

const server=app.listen(端口,()=>console.log('Project running on port'+port));
process.on('SIGINT',()=>{
console.info('接收到SIGINT信号')
//停止服务器接受新连接并完成现有连接。
server.close(函数(err){
//如果出现错误,则记录并退出错误(1代码)
如果(错误){
控制台错误(err)
进程。退出(1)
}
//关闭数据库连接并成功退出(0代码)
//比如猫鼬
mongoose.connection.close(函数(){
console.log('Mongoose连接已断开')
进程。退出(0)
})
})
})
第二条也是这样-

const server=app.listen(端口,()=>console.log('Project running on port'+port));
process.on('message',函数(msg){
控制台信息('接收到停机信号',消息)
如果(消息==‘关机’){
log('关闭所有连接…');
setTimeout(函数(){
console.log(“已完成关闭连接”);
进程退出(0);
}, 1500);
}
});
但两者都没有帮助


我从阅读所有相关的开放式问题中了解到,PM2向节点发送“SIGINT”信号,它会自己杀死节点。

我们可以自己制作一个bash脚本,如果出现错误关闭节点项目,它将重新启动节点项目,而不是使用PM2

@echo关闭
setlocal enableextensions enabledelayedexpansion
设置/a“x=0”
:更多的\u到\u过程
如果%x%leq 10(
回显%x%
节点E:\Max\Projects\dummy\API\server.js
设置/a“x=x+1”
后藤:更多的过程
)
端部

暂停
,当您尝试第二个代码时,是否在启动相应的应用程序之前为其应用了
关机并显示消息
选项?()@t.niese我更新了我的package.json文件
{“name”:“demo api”,“version:“1.0.0”,“description:”“main:“server.js”,“scripts:{“start:”node server.js“},“shutdown_with_message:”true,“keywords::[“Mongoose”,],“author:“Mayank Agrawal”,“license:“MIT”,“dependencies:{“body parser”:“^1.18.3”,“express”:“^4.16.4”,“fs”:“0.0.1-security”,“mongoose”:“^5.7.5”,}
但它仍然不起作用