process 对象有哪些常用能力?如何优雅退出进程?
process 是全局对象,提供环境信息与控制:
process.env:环境变量(NODE_ENV等),生产环境务必读取process.argv:命令行参数(argv[2]起是自定义参数)process.cwd():当前工作目录process.exit(code):立即退出(0 成功,非 0 失败)process.on('uncaughtException' / 'unhandledRejection'):兜底未捕获错误process.on('SIGINT' / 'SIGTERM'):监听 Ctrl+C / 终止信号
优雅退出:收到 SIGTERM 后停止接收新请求、等待进行中任务完成、释放连接再退出。
process.on('SIGTERM', async () => {
server.close()
await drainQueues()
process.exit(0)
})