让我们说我有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);
};
发射被完全忽略,没有错误或任何东西。不确定我是否做得对,所以任何方向都会受到赞赏。尽管如此,期望的回报仍然有效。
答案 0 :(得分:23)
您将两次实例化EventEmitter,因此导出的那个不是订阅该事件的那个。这有效:
var EventEmitter = require('events').EventEmitter
, pubsub = new EventEmitter();
exports.pubsub = pubsub;
pubsub.on('loggedIn', function(msg) {
console.log(msg);
});