我有一个使用Express的Node.js应用程序。在那个应用程序中,我有一个看起来像这样的块:
const app = require('./app');
const port = process.env.PORT || 8080;
const server = app.listen(port);
server.on('listening', () =>
console.log(`Application launched on ${app.get('host')}:${port}`)
);
这成功了。它在listening
事件被触发时成功打印消息。我的问题是,当我的服务器停止/关闭时,是否有任何我可以收听的事件?或者当服务器停止收听时?
我想在这种情况下做一些清理工作。
答案 0 :(得分:2)
您可以侦听节点的进程事件以进行关闭
// listen for TERM signal .e.g. kill
process.on ('SIGTERM', doSomething);
// listen for INT signal e.g. Ctrl-C
process.on ('SIGINT', doSomething);
//or even exit event
process.on('exit',doSomething);
答案 1 :(得分:1)
您应该可以使用exit
:
process.on('exit', function() {
console.log('Process terminating.')
});
正如文档中指出的那样,你不能推迟任何事情,这是一次性的交易。