" SyntaxError:意外的令牌)"在Node.js中

时间:2017-06-04 13:48:08

标签: javascript node.js ecmascript-2017

我不断收到以下代码的SyntaxError: Unexpected token )'错误:

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

它实际上只是在我放入箭头函数之后才开始。我想我错过了语法方面的东西。我正在使用airbnb风格指南&短信btw。运行Node.js LTS。 VS Code在编辑器本身中没有给出任何解析错误。 该代码通过Babel转换为ES2015时有效。我仍然很好奇它为什么不使用ES6语法。

1 个答案:

答案 0 :(得分:7)

问题在于,您在两个地方使用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) => {
      // ...
    },
//   ^
  ),
// ^
);

此语法是ECMAScript 2017的一部分,在8.0.0版本之前不受Node.js支持,但可以使用Babel进行转换。