node.js模块中的自动导出功能

时间:2014-02-28 14:49:11

标签: javascript node.js module

是否可以自动导出node.js模块中定义的所有函数?

示例:

假设在文件foobar.js中我有以下两个函数

function foo() {
    ...
}

function bar() {
    ...
}

是否存在将其自动添加到exports字典中的工具,以便以下代码成为可能?

foobar = require('foobar.js')
foobar.foo(); // works, even if not explicitly added in 'exports'
foobar.bar(); // also works

换句话说,我想逐步向模块添加新功能,而不必手动将它们添加到导出字典中。因此,以下是我想要避免

的内容

exports.foo = foo;
exports.bar = bar;

也许这可以通过内省地获取模块中定义的所有函数的列表来实现,但我也不知道如何实现这一点。

1 个答案:

答案 0 :(得分:1)

揭露模块中的事物的方法:

var foobar = function(x, y) {
  this.x = x;
  this.y = y;
};
module.exports = foobar;

在你的情况下:

foobar = require('foobar.js');
module.exports = foobar;

您可以阅读额外的here

修改

执行您需要的操作需要重载节点“require”方法,这是不可能的,请查看here
也许您可以安装node-overload并使用方法 RePrototype