动态加载Javascript函数

时间:2014-04-22 03:43:16

标签: javascript node.js

我想用JSON文件动态加载和调用Javascript函数。我们的想法是构建一个插件框架,让其他人只需编写一个函数并更新JSON文件即可添加功能。

例如,使用以下JSON:

{
"plugins" : {
    "random" : {
        "name"  : "Random number generator",
        "hook"  : "random"
    }
}
}

...以及以下插件:random.js

module.exports.run = function() {
    return Math.round(Math.random() * 100);
}

我希望能够解析JSON文件并调用任何插件的run函数。如何随机加载和调用run函数?

1 个答案:

答案 0 :(得分:2)

根据您上面所描述的内容,只需require模块。

var plugins = require('./plugins.json');
var pluginKeys = Object.keys(plugins);
for (var i = 0; i< pluginKeys; i++)
    plugins[pluginKeys[i]].func = require('./'+[pluginKeys[i].hook+'.js').run;

// could add extra path to above as well. You could also leave off the '.js'

然后你会:

var randomTheHardWay = plugins.random.func();