2

我正在使用 Node.js 构建一个 MMO,我希望我的团队中的一些脚本编写者为老板和其他脚本对象创建脚本 (duh)。我的第一个想法是在服务器上有一个文件夹,人们可以在其中上传 javascript 文件并让 node.js 自动读取和解析目录中的每个脚本,但我不希望他们能够执行 process.exit()例如,或其他危险的东西。

有没有一种解决方案可以让我控制脚本编写者能够调用的功能?

4

2 回答 2

4

您可以控制他们无法使用vm模块调用的功能。

例如,

vm.runInNewContext(userCode, {
    require: null,
    process: null,
    someFunc: function (x) { return x+1 },
    someData: { abc: 'def' }
});
于 2012-06-28T09:31:07.670 回答
1

javascript是否可以作为脚本语言工作。我想应该是的。
所以,我认为 vm.runInNewContext 可能就是你所需要的。看看http://nodejs.org/docs/latest/api/vm.html

于 2012-06-28T09:59:40.943 回答