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(...)
には、上記で暗黙的に呼び出されていますか? 1 つのサンドボックス内で複数のモジュールを (上記のように) 定義し、参照するにはどうすればよいでしょうか?
どのような質問をするべきかを知ることさえ困難です。実際には、通常のノード プログラミングとは異なる方法で をmodule.exports
使用してvm2
、違いを強調する方法の説明を望んでいます。