Nodejs:全局使用eventEmitter对象

13 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);
});
Run Code Online (Sandbox Code Playgroud)

以及用户,帖子和文章功能.像这样的东西:

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);
};
Run Code Online (Sandbox Code Playgroud)

发射被完全忽略,没有错误或任何东西.不确定我是否做得对,所以任何方向都会受到赞赏.尽管如此,期望的回报仍然有效.

Jim*_*mmy 25

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

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

exports.pubsub = pubsub;

pubsub.on('loggedIn', function(msg) {
    console.log(msg);
});
Run Code Online (Sandbox Code Playgroud)

  • 不知道我怎么没看到.可能来自挫折:).谢谢! (2认同)