Nodejs来自不同文件的函数列表

我正在尝试创build一个应用程序和文件夹结构是这样的:

./ index.js options/ basic.js help.js 

选项文件夹中的js文件将具有如下所示的对象:

 ping = { info: 'text', fn: function() {} } 

我希望index.js能够做类似的事情

 var options = require('./options'); options['ping'].fn(); 

我如何导出/要求使它像这样工作? 我的企图是徒劳的。

我希望能够在没有像ES这样的JS编译器的情况下做到这一点

您可以在您的options文件夹内创build一个index.js文件,该文件夹导出所有同级模块。

 module.exports = { ping: require('./help.js'), // Assuming your "ping" object is here. other: require('./basic.js') }; 

在选项文件夹中的JS文件(比如说filename.js )中使用module.exports

 module.exports = { info: 'text', fn: function() {} }; 

然后,要消耗你的模块:

 var options = require('./options/filename.js'); options.fn(); 

这是NodeJS原生支持模块的CommonJS方法。

如果不使用其他工具,您将无法require文件夹,因为require在文件级别运行。

从NodeJS的文档 :

Node.js有一个简单的模块加载系统。 在Node.js中,文件和模块是一一对应的(每个文件被视为一个单独的模块)。

这是一个很好的文章,了解更多: https : //www.sitepoint.com/understanding-module-exports-exports-node-js/