【发布时间】:2019-05-27 15:11:55
【问题描述】:
如果我在字符串中有一些代码,如何在不暴露任何全局变量的情况下运行它。
vm 模块似乎暴露了内置函数:
const vm = require("vm");
vm.runInNewContext("console", {}); // No error, outputs an object
// Expected it to error, since we are passing an empty context
不是 this question 的副本,其解决方案对我不起作用(在 Node v10.5.0 中)。
【问题讨论】:
-
@blex 我没有使用
script.runInNewContext,我使用的是vm.runInNewContextnodejs.org/api/… -
糟糕,我的错!我看到相同的方法名称并将它们混合在一起。 This discussion 让我认为这不是错误“如果您连接了开发工具调试器,控制台上的方法将传递给调试器。否则它们是无操作的。”跨度>
标签: javascript node.js scope global