노드 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