我想用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函数?
答案 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();