2017-12-14 12 views
1

익스프레스와 노드에서 내 보낸 내 클래스 파일이 있습니다. I'ld 화살표 기능을 사용하려면 그것은 예입니다 :익스프레스 익스포트 클래스의 화살표 기능 - 예기치 않은 토큰

class MyClass { 

    myFunc(arg) { 
     console.log(arg); 
    } 

    myArrowFunc = (arg1, arg2) => { 
     console.log(arg1); 
     console.log(arg2); 
    }; 
} 


module.exports = { 
    MyClass 
} 

모든 것이 myArrowFunc를 추가하기 전에 잘 작동합니다. 그 후 앱 실행 후 오류가 발생합니다.

myArrowFunc = (arg1, arg2) => { 
      ^
SyntaxError: Unexpected token = 

내 노드 버전이 9.x이므로 작동해야합니다 ... 또는 뭔가 잊었습니다.

+1

어쨌든 화살표 기능의 요점은 무엇입니까? 그렇게 할 때,'this'는 객체 인스턴스가 아니기 때문에 실제로는 객체의 메서드가 아닙니다. 실제로 어떤 문제를 해결하려고합니까? – jfriend00

답변

0

익스프레스 앱에서 새 Javascript (es6)를 사용하려면 es6 코드를 es6로 컴파일하기 위해 babel을 설치해야합니다. 바벨 컴파일러를 사용하면 Express 앱에서 새로운 JavaScript 기능을 사용할 수 있습니다.

프로젝트에서 바벨 컴파일러를 사용하려면 이러한 종속성이 필요합니다.

1) 바벨-CLI는 : 바벨에게

2) 바벨 프리셋-es2015을 사용하여 명령 라인에서 파일을 컴파일 바벨 설정된 모든 es2015 플러그인에 대한.

실행이 명령은 나머지 당신은 그런 클래스에 할당을 넣을 수 없습니다이 링크 https://www.codementor.io/iykyvic/writing-your-nodejs-apps-using-es6-6dh0edw2o

+2

꽤 요즘에는 노드가 화살표 기능에 바벨 (babel)이 필요하지 않습니다. 문제는 클래스 필드 나 속성 이니셜 라이저 (또는 호출 된 모든 것)의 실험적 기능 _이 Node에 들어 가지 않았지만 베벨을 통해 사용할 수 있다는 것입니다. – Andy

+0

Babel로 문제의 코드를 처리하려고하면 다음과 같은 결과가 나옵니다. SyntaxError : module.js : 예기치 않은 토큰 (7:16) – Quentin

+0

잘 모르겠습니다. 예를 들어 누군가가 이전 버전을 사용하고 있다면 : 4.x.x 이하에서 도움이되기를 바랍니다. – digit

0

를 따르십시오

npm install -save-dev babel-cli babel-preset-es2015 

터미널

를 사용하여 nodejs 프로젝트에 바벨을 설치합니다.

생성자에 넣지 않으시겠습니까? 속성을 초기화합니다.

아니요 babeljs이 필요합니다.

class MyClass { 
    constructor(){ 
     this.myArrowFunc = (arg1, arg2) => { 
      console.log(arg1); 
      console.log(arg2); 
     }; 
    } 
    myFunc(arg){ 
     console.log(arg); 
    } 
}