NodeJS vm 用例

Ami*_*ner 6 javascript node.js nodevm node-vm2

我对 NodeJS 中 VM 模块的用例感到困惑。

在阅读了有关此模块的文档中的一些内容后,它看起来像是一种进行 eval 的奇特方式。

有没有人使用过它并活着告诉尾巴它的用例?

Ale*_*lex -1

该模块的主要目的是在沙盒上下文环境中运行 JS。例如,当您需要执行未经验证的 JS 代码而不影响您的节点程序执行的风险时。此外,您可以指定执行超时和上下文特定的错误处理。

示例:解释用户创建的 JS 片段(交互式教程等)。

  • 但文档仍然说“vm 模块不是安全机制。请勿使用它来运行不受信任的代码。” (6认同)
  • 文档还说“一个常见的用例是在沙盒环境中运行代码”,这正是答案所指出的。它没有声明这是一种安全机制。 (2认同)