node.js - Node : use eventEmitter object globally

标签 node.js eventemitter

假设我有 3 个公开的功能:用户、帖子、文章

所有这些都需要将消息发送到一个名为 mediator 的文件,其中设置了所有事件。

目前我在这样做时遇到了麻烦

在中介文件中我有这样的东西:

var EventEmitter = require('events').EventEmitter;
  , pubsub = new EventEmitter();

exports.pubsub = new EventEmitter()

pubsub.on('loggedIn', function(msg) {
    console.log(msg);
});

在用户、帖子和文章功能中。像这样:

var mediator = require('../config/mediator')
    , _ = require('underscore')

exports.account = function(req, res) {
  var returned = _.omit(req.user._doc, 'password' )

  mediator.pubsub.emit('loggedIn', 'A User logged in');

  res.send(returned);
};

发射被完全忽略,没有错误或任何东西。不确定我是否做得对,所以任何方向都会受到赞赏。不过,期望的返回是按预期工作的。

最佳答案

您将 EventEmitter 实例化两次,因此导出的不是订阅事件的那个。这有效:

var EventEmitter = require('events').EventEmitter
  , pubsub = new EventEmitter();

exports.pubsub = pubsub;

pubsub.on('loggedIn', function(msg) {
    console.log(msg);
});

关于node.js - Node : use eventEmitter object globally,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17177735/

相关文章:

node.js - 在事件发射器中使用异步

javascript - 我如何使用事件发射器接收多个相同类型的事件?

node.js - 使用 node.js 动态创建文件并使其可供下载

javascript - 来自外国集合的项目特定字段 $lookup 结果

node.js - 使用 Google 云服务帐户 key 文件中的内容设置 Heroku Config Var

javascript - 等待 mocha runner 事件的异步函数

node.js - 如何在 Node.js 中注册全局 TypeScript Enum

javascript - 在meteorjs中定位文件的路径

javascript - 从指令发出事件时, Angular 事件发射器不工作

javascript - 具有不同参数的 eventEmitter 监听器和发射器