ノードJSで簡単なスクリプトを実行する方法を探していて、VM moduleを発見しました。ドキュメンテーションは、run *メソッドが実行結果を返すように指定しています。だから、 "ちょっと、オブジェクトをそのまま返し、メインスクリプトのプロパティを呼び出すのはなぜですか?ノードVM - 暗黙的にオブジェクトを返す
$ node
> var vm = require('vm');
undefined
> vm.runInNewContext("{ foo: 'bar' }")
'bar'
> vm.runInNewContext("{ foo: 'bar', baz: 'qux' }")
evalmachine.<anonymous>:1
{ foo: 'bar', baz: 'qux' }
^
SyntaxError: Unexpected token :
>
ない、非常に期待される結果:
は、だから私は、ノードのREPLを起動します。面白いことに、割り当ての結果を返すと...
> vm.runInNewContext("exports = { foo: 'bar', baz: 'qux' }")
{ foo: 'bar', baz: 'qux' }
誰かがこの動作を私に説明できますか?
オブジェクトリテラルは有効なステートメントではありません。 – Bergi