Node.JS 处理全局事件侦听器
Node.JS Process global event listeners
我想知道是否有任何方法可以在 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'
我想知道是否有任何方法可以在 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'