Meteor.js是否可以在服务器上发出全局事件?例如
// how to set make myEmitter available across files/packages ?
myEmitter = new Npm.require('events').EventEmitter;
if(Meteor.isServer){
Meteor.methods({
'foo' : function(){
myEmitter.emit('fooEvent', { 'bar' : 'hello!'});
}
});
}
和
if(Meteor.isServer){
function doFoo(){
console.log('Foo done !');
}
myEmitter.on('fooEvent', doFoo);
}
最佳答案
您的代码应该可以工作。只需更改此行:
myEmitter = new Npm.require('events').EventEmitter;
至
myEmitter = new (Npm.require('events').EventEmitter);
您不必使用此包,因为EventEmitter是nodejs核心的一部分。
要使其可用于其他文件,只需不使用
var
关键字。如果您在包中使用此功能,则必须确保在
api.export
中使用package.js
将其导出到应用程序的其余部分。关于node.js - Meteor.js-服务器上的全局事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20449224/