Node.js에 매우 원시적 인 온라인 인터프리터/컴파일러를 만들어 여러 언어로 사용하고 JS를 실행할 때 아주 이상한 문제가 발생했습니다. 암호.Eval()에 오류가 발생하는 완벽한 JavaScript 구문
사용자가 글을 올리면 입력을 받아 조금 벗어나 명령 행에 직접 입력합니다 (끔찍한 연습이지만, 나중에는 새로운 시스템으로 옮길 것입니다. 직접 CMD) 이것은 큰 따옴표와 \ n, \ r 등을 이스케이프 처리합니다.
명령을 입력하면 (예, 콜백을 제공하지만,
,617 : t의 싱크)은let parentResults = cp.exec(`node ./builders/${this.builder}.js "${this.escapedCode}"`);
// First parameter represents the builder to run the user input with
// and escaped code is self-explanatory
JS 하나만 선이 처리 빌더 쓸 필요 이제
eval(process.argv[2]); // Already somewhat-escaped code
, 내가
function foo(x) {
console.log(x);
}
foo(5);
뭔가를 쓰기 나는 5
의 콘솔에서 올바른 출력을 얻을. 내가
let foo = function(x) {
console.log(x);
}
foo(5);
처럼 뭔가를 할 때
는하지만 나뿐만 아니라 화살표 구문을 사용할 때 같은 일이 발생
console.log(x);
^
SyntaxError: Unexpected identifier
말하는 오류가 발생합니다. 나는 그것을 망쳐 놓을 수있는 단서가 없다. 어떤 아이디어 또는 도움?
스튜어트가 편집하기 전에 코드의 실패에 대한 귀하의 답변이 더 나은 설명을 제공했기 때문에 가장 좋은 답으로 선택되었습니다. –