微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Node.JS Process 全局事件监听器

如何解决Node.JS Process 全局事件监听器

我想知道是否有任何方法可以在 Node.JS 的 process 模块上声明事件侦听器。即能够在一个文件中全局定义适用于整个项目的事件侦听器。

例如:我希望能够侦听流程模块的 on(exit) 事件以在流程退出之前执行一些日志记录,并使用提到的或认的 exitCode(这是在一个单独的文件中我会打电话给process.exit()

if(!process.env.TELEGRAM_TOKEN) {
   process.exit(100);
}   

并且我在另一个模块中将侦听器声明为:

process.on("exit",(code) => {
switch(code) {
    case 100:
        console.error(`${code} - ${NO_API_KEYS}`);
        break;
    default:
        console.error(`${code} - ${DEFAULT_EXIT_ERROR}`)
}
});

问题是 - 它以代码 100 退出,但它从未记录在事件侦听器上定义的 console.error()

解决方法

您的模块似乎没有被加载,因此永远不会运行代码来注册 exit 事件的事件处理程序。

要运行其初始化代码,您只需从主应用模块或作为应用初始化一部分的任何其他模块导入模块。

import './mymodule.js'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。