当我在 Nodejs+Express 中使用护照进行用户身份验证时发生了奇怪的事情

Strange things happen when I use passport for user authentication in Nodejs+Express

一开始我是用这段代码来定义LocalStrategy

    passport.use(
        'local-login',
        new LocalStrategy({
            usernameField:'username',
            passwordField: 'password',
            passReqtoCallback: true
        },
            function(req,username,password,done){
            ....

然后,护照无法使用 well.It read password as username 并且无法从 HTML 表单中读取用户名。

我很困惑,然后我下载了别人的源代码并将其应用到我的代码中。 事实上,我只是把上面的部分改成这样:

 passport.use(
  'local-login',
  new LocalStrategy({
   usernameField: 'username',
   passwordField: 'password',
   passReqToCallback: true
  },
 function(req,username,password,done){
            ....

而且效果很好!!!!

实际上,我认为这两个代码只是在indentation.So我原来的错误是什么?谁能告诉我,谢谢!

(为了更清楚,我上传了我的 IDE 的屏幕截图)

这是错误代码。

这是运行良好的代码。

在你的原始代码中你有

passport.use(
  'local-login',
  new LocalStrategy({
    ...
    passReqtoCallback: true // misspelled!
  }),
  ...
)

而不是

passport.use(
  'local-login',
  new LocalStrategy({
    ...
    passReqToCallback: true
  }),
  ...
)