NodeJS - 如何正确导出模块

时间:2012-11-26 07:53:55

标签: javascript node.js

给出两个模块ab。我知道可以使用amodule.exports的功能公开给另一个模块。我可能没有正确使用它。

a.js

function A() { ... }
A.prototype.func = function() { ... }

function test() {
    new A().func();
}

test();
module.exports = {
    A : new A()
};

test()正常运作。但是下面的休息:

b.js

var A = require("./a");
A.func(); //throws an exception

如何使用其功能导出整个A模块?

更新:console.log(A)上执行b(作为第二行),不会泄露任何A的方法和变量。

1 个答案:

答案 0 :(得分:1)

试试这个:

module.exports = new A();

您将无法在b中实例化新的A,但似乎这就是您想要的。

修改

或者您可以将b.js更改为:

var A = require('./a');
A.A.func();

但这可能不是你想要的。

我们的想法是exports将是从require返回的内容。这是完全相同的参考。