javascript - node.js 模块中的自动导出函数

标签 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;

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

最佳答案

一种在模块中公开事物的方法:

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

在你的情况下:

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

您可以阅读额外的 here .

编辑

做你需要做的事情需要重载 Node “require”方法,这是不可能的,看看here .
也许你可以安装 node-overload并使用方法RePrototype

关于javascript - node.js 模块中的自动导出函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22098343/

相关文章:

javascript - 为什么 "function sayHi.alternate () {}"不起作用?

javascript - 在 React 中更改父级的状态时,我的子级值没有改变?

node.js - 无服务器 Typescript 插件将我所有的 lambda 函数打包到一个 zip 存档中

node.js - 如何在发送文档附件时在 WhatsApp Business API 中设置文件名参数?

python - 如何将子模块名称保留在 Python 包的 namespace 之外?

Angular 动态模块提供者

javascript - 跨框架共享全局 javascript 对象

javascript - 嵌套在每个循环中以插入值,该值在数组中没有重复,并且循环从第一个开始

javascript - TypeScript:库函数的返回类型未知时该怎么办

python - python中的plot()错误消息: No module named 'plotting'