【问题标题】:auto-exporting functions in a node.js modulenode.js 模块中的自动导出函数
【发布时间】:2014-02-28 14:49:11
【问题描述】:

是否可以自动导出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;

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

【问题讨论】:

    标签: javascript node.js module


    【解决方案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

    【讨论】:

    • 感谢您的回答,但我的意思是一种将模块中定义的功能自动添加到exports的方法
    • 最后机会:尝试节点重载
    猜你喜欢
    • 2019-10-28
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-12
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    相关资源
    最近更新 更多