Nodejs:全局使用eventEmitter对象

可以说我有3个暴露的职能:用户,职位,文章

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

目前我很难这样做

在调解器文件中,我有这样的东西:

var EventEmitter = require('events').EventEmitter; , pubsub = new EventEmitter(); exports.pubsub = new EventEmitter() pubsub.on('loggedIn', function(msg) { console.log(msg); }); 

并在用户,文章和文章function。 像这样的东西:

 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); });