【问题标题】:nodejs exit issue for express routing快速路由的nodejs退出问题
【发布时间】:2021-03-08 01:56:55
【问题描述】:

使用nodeJS和express开发API时,涉及到的2个js文件如下

当我 pm2 start main.js 时,api.js 中的 doSth() 可以正常工作,但是,当我 pm2 stop main.js 时, cleanSth() 不起作用,任何人都可以告诉我如何达到我的预期结果(cleanSth when I pm2 stop)?

api.js

const express = require('express')

doSth()

const routes = (app) => { ... ... }

process.on('beforeExit', cleanSth()})

module.exports = 路线

main.js

const express = require('express') const app = express()

const a = require('./api.js') a(app)

【问题讨论】:

    标签: node.js express pm2


    【解决方案1】:

    如文档https://nodejs.org/api/process.html#process_event_beforeexit中所述

    对于导致显式终止的条件,例如调用 process.exit() 或未捕获的异常,不会发出 'beforeExit' 事件。

    因此,如果您只在 cleanSth 中进行一些同步工作,那么请使用 exit 事件而不是 beforeExit

    或者你可能想看看这个答案https://stackoverflow.com/a/64028857/3284355

    【讨论】:

    • 问题是 'pm2 stop main.js' / 'pm2 restart main.js' 没有触发 'beforeExit' 或 'exit' 事件
    猜你喜欢
    • 2021-04-17
    • 2018-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-31
    • 1970-01-01
    相关资源
    最近更新 更多