1

我是 Node 和虚拟机vm2的新手。在后者的文档中,它给出了一个用法示例:

let functionInSandbox = vm.run("module.exports = function(who) { console.log('hello '+ who); }");
functionInSandbox('world');

问题:这实际上在做什么?

首先,为什么要module.exports在这里使用?即,为什么不将其省略如下?

let functionInSandbox = vm.run("function(who) { console.log('hello '+ who); }");
functionInSandbox('world');

其次,另一种看待它的方式:在常规节点编程中,require(inc)在一个文件中分配给变量是初学者的知识,在另一个文件中(由 选择inc)分配给module.exports. 这与上面的用法有什么不同vm2

具体来说:require(...)在上面是否被隐式调用?如何在一个沙箱中定义(如上)和引用多个模块?

甚至很难知道要问什么问题——真的,我只是希望能解释一下可以与常规节点编程不同的方式module.exports使用vm2的方式,突出差异。

4

0 回答 0