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

时间:2012-05-22 07:45:23

标签: javascript node.js

我的对象来自事件:

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);
}

我想有一些需要/导出的东西是错的,但我找不到。

1 个答案:

答案 0 :(得分:1)

试试这个:

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第二种类型。这应该做你想要的;也就是说,模块的导出是A的一个实例,这样require('./controller')会返回A个实例,你可以在其上调用f(arg1, arg2)

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