模块间共享的事件发射器

Event emitter shared between modules

我使用事件发射器,似乎我在几个模块中需要它, 我的意思是我想使用 相同的实例 我的问题是最好创建一个模块来公开事件发射器实例以及建议如何做?

我所做的就像在模块之间共享,但不确定是否推荐...请告诉我

var events = require('events');
var eventEmitter = new events.EventEmitter();

module.exports = {
    getEventEmitter: function () {
        return eventEmitter;
    }
};

你的代码没问题。

可以这样简化,如果你愿意:


var events = require('events');
var eventEmitter = new events.EventEmitter();

module.exports = eventEmitter;

请注意,虽然这通常工作正常(我经常这样做),但 it is possible to break the require module cache 并以不同的实例结束。