2014-10-01 26 views
0

我有一些嚴重的問題,試圖跨多個模塊導出/使用eventemitter。基本上我正在尋找把我所有的聽衆和調用函數放在一個名爲EventListen.js的模塊中。接下來,例如我保存用戶後的Order.js模型,我希望EventListen.js中的函數能夠聽到該事件。我已經通過一些教程閱讀並試圖做到這一點的幾個不同的方式,但沒有多少運氣...如何導出nodejs eventemitter

/**** EventListen.js ****/ 

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

myeventmodule.on('newuser', function (user) { 

    console.log(user); 

}); 
module.exports = myeventemitter; 





/**** User.js or EventPublisher.js ****/ 
var myeventemitter = require('Eventlisten'); 

schema.post('save', function (user) { 

    myeventmodule.emit('newuser', user); 

}) 
+0

是'socket'相同的對象'myeventmodule'?更完整的(非)工作示例會有所幫助。 – 2014-10-01 08:49:07

+0

增加了一些,使其更加完整..我很抱歉,不,他們沒有,我只是從我在我的項目中的套接字事件粘貼。我實際上只是試圖從不同的模塊發出事件,並讓EventLister能夠在這裏發射.. – 2014-10-01 08:56:17

回答

1
var EventEmitter = require('events').EventEmitter; 

module.exports = new EventEmitter(); 

exports.emitSomethingLater = function() 
setTimeout(function() { 
    module.exports.emit('something'); 
}, 1000); 
} 
+0

感謝您的代碼片段,它可能會提供一些有限的短期幫助。通過展示*爲什麼*這是一個很好的解決方案,並且使它對未來的讀者更有用,一個正確的解釋[將大大提高](// meta.stackexchange.com/q/114762)其長期價值其他類似的問題。請[編輯]你的答案以添加一些解釋,包括你所做的假設。 – 2018-02-27 12:46:05