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

时间:2017-01-04 00:38:51

标签: javascript node.js

我正在尝试创建一个应用程序,文件夹结构如下:

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

选项文件夹中的js文件将包含如下对象:

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

我希望index.js能够做类似

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

如何导出/要求使其像这样工作?我的尝试是徒劳的。

我希望能够在没有像ES

这样的JS编译器的情况下做到这一点

2 个答案:

答案 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/