我在VM模块中运行脚本,方法是将上下文传递给vm实例,如下所示
var vm = require("vm")
var file1 = require("file1")
sandbox = {file1:file1}
var code = " file1.saveInMongoDB({"que" : true})
var script = vm.createScript(code);
script.runInNewContext(sandbox,true);
process.send ({"success"})
依赖项file1具有各种其他依赖项,如mongodb库,文件io等。
调用上述脚本时,应将数据保存在mongodb中,然后通过向主进程发出成功事件来退出。但是,它永远不会保存在DB
中我使用eval而不是vm执行相同的脚本,它完美无缺。
那么,是否意味着VM模块无法访问内部依赖项?