我试图在节点进程退出时插入数据库。
我知道process.on('exit', [fn])
不能做任何异步的事情,因此我正在尝试找到解决方法。
我正在使用Sequelize,但是无论ORM,它仍然是异步DB调用。我尝试过
process.on('exit', async () => {
console.log('Process terminating');
await Status.update({
running: 0,
}, {
where: {
name: 'myStatus'
}
});
process.exit();
});
但是显然这是行不通的,因为我们不能在退出时执行异步操作。
我已经看到了一些针对此问题的SO解决方案(例如How to perform an async operation on exit),但似乎必须有一个更为优雅的解决方案。此外,我不确定是否会捕获所有退出事件。我宁愿不安装一个照顾它的依赖项。有原生的Node方法可以做到这一点吗?