NodeJS 中有一个名为 vm 的包,用来创建运行 NodeJS 代码(JavaScript, ECMAScript)的虚拟机。
var vm = require('vm');
这个vm的方法不多:
- vm.Script
- vm.createScript
- vm.createContext
- vm.runInDebugContext
- vm.runInContext
- vm.runInNewContext
- vm.runInThisContext
- vm.isContext
详情查看 NodeJS文档: VM
简述
简单地来说,这个包里面有Script(脚本)、Context(上下文)这两种对象。
上下文中含有当前可以操作的各种对象,因此又可以称为运行环境。如果我们生成一个新的上下文并与当前上下文隔离,那么就相等于我们建立了一个沙箱,在沙箱中运行的NodeJS脚本将无法影响外部的环境。
关于Script这个对象,其实存在感不是很强,因为它直接由字符串构造,在很多时候可以直接用代码字符串代替。
在沙箱中运行NodeJS代码
var vm = requ