我正在使用Node.js构建一个MMO,我希望我的团队中的一些脚本编写者为老板和其他脚本对象创建脚本(duh)。我的第一个想法是在服务器上有一个文件夹,人们可以上传javascript文件,让node.js自动读取并解析目录中的每个脚本,但我不希望它们能够执行process.exit()例如,或其他危险物品。
是否有一个解决方案可以让我控制脚本编写者能够调用哪些函数?
答案 0 :(得分:4)
您可以使用vm
模块控制他们无法调用哪些功能。
例如,
vm.runInNewContext(userCode, {
require: null,
process: null,
someFunc: function (x) { return x+1 },
someData: { abc: 'def' }
});
答案 1 :(得分:1)
javascript将作为脚本语言使用吗?我想它应该 所以,我认为vm.runInNewContext可能就是你所需要的。 看看http://nodejs.org/docs/latest/api/vm.html