這是在node.js中監聽/啓動事件的最佳方法嗎? 我一直在使用EventEmitter擴展模型來測試事件啓動和監聽node.js,我想知道這種方法是否有意義,因爲事件只有在有模型實例時纔會被監聽。 如何在節點應用程序有效時監聽事件?在node.js中使用事件的最佳方式
使用eventEmitter擴展模型的示例。
// myModel.js
var util = require('util');
var events2 = require('events').EventEmitter;
var MyModel = function() {
events2.call(this);
// Create a event listener
this.on('myEvent', function(value) {
console.log('hi!');
});
};
MyModel.prototype.dummyFunction = function(params) {
// just a dummy function.
}
util.inherits(MyModel, events2);
module.exports = MyModel;
編輯:關於這方面的一個更清晰的問題是:如何保持永久的過程,在應用程序執行過程中監聽事件,它有一個全球範圍內(如監聽中產生的事件正在運行的事件管理器的東西該應用程序)。 將是一個解決方案,需要在app.js文件myModel.js?如何在node.js中解決這類問題?
Rob,非常感謝您的回答。我會嘗試你說的技巧,並澄清我的問題,我的意思是,如果我運行節點REPL我可以做的:var應用=需要(「./應用」);並在 – Endymion
之後...以及var model = require('mymodel')之後; var theModel = new model();最後theModel.emit('myEvent',null);此代碼顯示「hi!」。無論如何,你的答案是非常有趣的,實際上一個更明確的問題應該是如何在應用程序執行過程中保持一個永久性進程來監聽事件,並且它具有全局範圍(類似於正在運行的事件管理器,用於監聽應用程序中產生的事件) 。 – Endymion