我不断收到以下代码的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语法。
答案 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进行转换。