我正在尝试创建一个应用程序,文件夹结构如下:
./
index.js
options/
basic.js
help.js
选项文件夹中的js文件将包含如下对象:
ping = {
info: 'text',
fn: function() {}
}
我希望index.js能够做类似
的事情var options = require('./options');
options['ping'].fn();
如何导出/要求使其像这样工作?我的尝试是徒劳的。
我希望能够在没有像ES
这样的JS编译器的情况下做到这一点答案 0 :(得分:1)
您可以在index.js
文件夹中创建一个导出所有兄弟模块的options
文件。
module.exports = {
ping: require('./help.js'), // Assuming your "ping" object is here.
other: require('./basic.js')
};
答案 1 :(得分:0)
在您的选项文件夹中的JS文件(例如filename.js
)中,使用module.exports
:
module.exports = {
info: 'text',
fn: function() {}
};
然后,使用你的模块:
var options = require('./options/filename.js');
options.fn();
这是NodeJS本身支持模块的CommonJS方法。
由于require
在文件级别工作,因此无法使用其他工具,您无法require
文件夹。
来自NodeJS' doc:
Node.js有一个简单的模块加载系统。在Node.js,文件和 模块是一对一的对应关系(每个文件被视为一个 单独的模块)。
这是一篇了解更多信息的好文章:https://www.sitepoint.com/understanding-module-exports-exports-node-js/