node.js - Nodejs在内存消息总线中使用EventEmitter进行跨模块通信

标签 node.js eventemitter

我是nodejs新手,我正在寻找在我的 Node 应用程序中拥有发布/订阅消息传递的方法,我可以使用它来在模块/包之间进行通信。

正在考虑使用EventEmitter,也许在进程上使用eventEmitter实例,这样它就可以充当全局事件总线。但我只是对这样做有一种不好的预感,我不知道足够的 Node 来提出不这样做的充分理由。

或者有其他方法吗?

这仅在内存中,不能跨多个实例

最佳答案

如果您愿意,可以依赖模块缓存。有些模块这样做是为了在需要时维护状态(例如 Mongoose )。

所以我的意思是,如果您的消息总线模块在内部维护其状态,并且仅导出 pub/sub 函数,那么需要它的任何其他模块将获得相同的“实例”,因此能够 pub/子针对同一 channel 。

关于node.js - Nodejs在内存消息总线中使用EventEmitter进行跨模块通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27257793/

相关文章:

javascript - 如何使用 API 请求返回的对象的一部分作为函数返回的内容?

node.js - Node.js 中的 “bash read command”

javascript - 如何使用 Node JS 获取 JSON 嵌套数组值

node.js - 无法让 `cookieSession` 与 `maxAge` 一起使用

Angular @Output 发射仅在第一次有效

Angular 5 EventEmitter 运行不正常

c++ - Qt 连接到 WebSockets 服务器

node.js - TypeScript @types 模块无法相互解析

javascript - 如何解决 react 原生 EventEmitter 监听器警告

event-handling - Angular 2 基类输出 EventEmitter 不会被引发或处理