使用Express在Node.js服务器关闭时执行代码

3

是否有一种方法可以在 Node.js Express 中的代码块在节点进程退出之前执行,无论是由于抛出错误、按下 Ctrl+C 还是任何其他原因?

1个回答

9

您正在寻找退出事件。根据文档说明:

当进程即将退出时会触发此事件。这是一个很好的钩子函数,可以执行模块状态的常量时间检查(例如单元测试)。在“exit”回调完成后,主事件循环将不再运行,因此可能无法调度计时器。

实现方式如下:

process.on('exit', function() {
    console.log('About to close');
});

值得一提的是,如果你不知道退出或异常发生的原因,通常尝试操纵数据并不是一个好主意。如果你不知道出了什么问题,通常最好从头开始,而不要试图用可能已经损坏的东西来完成某些事情。


2
坏得无法辨认/修复/理解。 - Robert
1
我成功地用以下代码实现了我想要的功能:process.on('SIGINT', function() {。 - Martin Taleski
我使用了 process.on('SIGTERM' 函数实现。 - cHida

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接