使用javascript从模块内的JSON文件加载设置

使用javascript从模块内的JSON文件加载设置,javascript,json,revealing-module-pattern,Javascript,Json,Revealing Module Pattern,我有几个不同的工具,每个工具都有许多私人和公共功能。我使用一个JSON数据文件来存储工具所需的设置和数据。 这是因为我们没有编码知识的编辑器应该能够更改JSON文件中的设置和数据,并根据需要调整所有工具 所有工具都在一个模块中实现,以便能够封装全局变量和所有工具 我对所有工具使用显示模块,另外一个模块封装所有工具 Example: var mainModule = (function () { var toolOne = (function () { function

我有几个不同的工具,每个工具都有许多私人和公共功能。我使用一个JSON数据文件来存储工具所需的设置和数据。 这是因为我们没有编码知识的编辑器应该能够更改JSON文件中的设置和数据,并根据需要调整所有工具

所有工具都在一个模块中实现,以便能够封装全局变量和所有工具

我对所有工具使用显示模块,另外一个模块封装所有工具

Example:
var mainModule = (function () {

    var toolOne = (function () {
        function publicFunc () {
            console.log('Some toolOne action.');
        }
        return {
           publicFunc: publicFunc;
        }
    })();

    var toolTwo = (function () {
        function publicFunc () {
            console.log('Some toolTwo action.');
        }
        return {
           publicFunc: publicFunc;
        }
    })();

    return {
        one: toolOne.publicFunc,
        two: toolTwo.publicFunc
    }
})();

mainModule.one();
mainModule.two();
有没有更好的方法来组织所有工具?
异步加载JSON文件并在所有模块中使用设置的最佳方法是什么?

只需在主模块顶部加载JSON文件即可:

var settings = require('./path/to/data.json');

这些设置是什么,如何应用等等?您的代码不起作用。您的内部IIFE不返回任何内容,因此
moduleOne
moduleTo
都是
未定义的。实际上,没有理由嵌套暴露的模块模式。对加载的JSON使用全局承诺。您的代码不是JSON,因此您的问题没有真正意义。您正在尝试加载Javascript代码文件还是JSON文件?如果您使用的是node.js,您可以让
require()
为您完成所有工作,因为它将缓存结果。每个模块只能
require()
模块。第一个将加载它,其余的将从缓存中获取。“真的,没有理由嵌套显示模块模式”+1这是异步加载文件吗?不,它的同步,但我确实想知道您需要异步的用例是什么?此代码不应阻止页面显示加载此文件时是否出现问题。我通常在启动时加载设置/配置文件,因此这不是真正的问题