2017-06-04 90 views
2

我不斷收到一個SyntaxError: Unexpected token)'錯誤下面的代碼:「語法錯誤:意外的標記)」中的Node.js

passport.use(
    'local-signup', 
    new LocalStrategy({ 
     usernameField: 'email', 
     passwordField: 'password', 
     passReqToCallback: true, // pass back req to callback 
    }, 
    (req, email, password, done) => { 
     // ... 
    }, 
), 
); 

據我把箭頭功能後真的只有開始我覺得我失去了一些東西語法明智的。我正在使用airbnb風格指南& linter btw。運行Node.js LTS。 VS編碼在編輯器本身中不會給出任何解析錯誤。 代碼通過Babel傳輸到ES2015時起作用。我仍然很好奇它爲什麼不使用ES6語法。

回答

5

問題是,在兩個地方你使用的是trailing comma in function syntax,即一個函數的最後一個參數後的逗號。

passport.use(
    'local-signup', 
    new LocalStrategy({ 
     usernameField: 'email', 
     passwordField: 'password', 
     passReqToCallback: true, // pass back req to callback 
    }, 
    (req, email, password, done) => { 
     // ... 
    }, 
// ^
), 
//^
); 

這句法是2017年的ECMAScript的一部分,並通過Node.js的版本8.0.0之前不支持,但可以使用巴貝爾被transpiled。

+0

實際上,它受版本8.0.0中的NodeJS支持 – xerq

+0

@xerq謝謝,在我的回答中加入了這個。至於你的建議編輯:你不應該以改變其含義的方式編輯他人的答案(如添加新信息)。相反,你可以評論答案,作者可以決定是否編輯它。 –

相關問題