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