如何将方法导出到另一个模块

我有事件延伸的对象:

var A = function () { EventEmitter.call(this); }; inherits(A, EventEmitter); var a = module.exports = Object.create(new A()); A.prototype.method = module.exports = function f(arg1,arg2){} 

在另一个模块上,我做了:

 var controller = require('./filename'); function main(){ controller.f(arg1,arg2); } 

我猜想require / export是错误的,但我找不到。

尝试这个:

 var A = function() { EventEmitter.call(this); }; inherits(A, EventEmitter); var a = module.exports = new A(); A.prototype.f = function(arg1, arg2) { console.log("Hello, world!"); } 

你的愚蠢是重新分配module.exports第二种types。 这应该做你想要的; 即模块的导出是A一个实例, require('./controller')返回A实例,可以调用f(arg1, arg2)

顺便说一句, Object.create()是无关紧要的。