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/

10-10 00:36