在Node.js退出之前进行清理操作
我想告诉Node.js无论出于何种原因(Ctrl
+ C
,异常或任何其他原因)总是在退出之前总是做一些事情。
我尝试了这个:
process.on('exit', function (){ console.log('Goodbye!');
});
我开始了该过程,将其杀死,但没有任何反应。我再次启动它,按Ctrl
+ C
,仍然没有任何反应…
回答:
回答:
您可以注册一个处理程序,process.on('exit')
并在任何其他情况下(SIGINT
或未处理的异常)进行调用process.exit()
process.stdin.resume();//so the program will not close instantlyfunction exitHandler(options, exitCode) {
if (options.cleanup) console.log('clean');
if (exitCode || exitCode === 0) console.log(exitCode);
if (options.exit) process.exit();
}
//do something when app is closing
process.on('exit', exitHandler.bind(null,{cleanup:true}));
//catches ctrl+c event
process.on('SIGINT', exitHandler.bind(null, {exit:true}));
// catches "kill pid" (for example: nodemon restart)
process.on('SIGUSR1', exitHandler.bind(null, {exit:true}));
process.on('SIGUSR2', exitHandler.bind(null, {exit:true}));
//catches uncaught exceptions
process.on('uncaughtException', exitHandler.bind(null, {exit:true}));
以上是 在Node.js退出之前进行清理操作 的全部内容, 来源链接: utcz.com/qa/399483.html