Mysql 使用Knex、Express和NodeJS执行登录和注册

Mysql 使用Knex、Express和NodeJS执行登录和注册,mysql,node.js,express,knex.js,Mysql,Node.js,Express,Knex.js,我想使用Knex MySQL、Express和NodeJS构建一个应用程序。我上传了我的代码。我还没有前端,我用的是邮递员 注册工作正常,但在登录时我得到 { "status": "User not found" } 或 这似乎是个问题?为什么登录时看不到我插入数据库的用户?我找出了问题所在,并从local.js修改了函数,如下所示: passport.use('local', new LocalStrategy({ usernameField: 'email', passwo

我想使用Knex MySQL、Express和NodeJS构建一个应用程序。我上传了我的代码。我还没有前端,我用的是邮递员

注册工作正常,但在登录时我得到

{
    "status": "User not found"
}


这似乎是个问题?为什么登录时看不到我插入数据库的用户?

我找出了问题所在,并从
local.js
修改了函数,如下所示:

passport.use('local', new LocalStrategy({
  usernameField: 'email',
  passwordField: 'password'
},
  function (username, password, done) {
    knex('user')
      .where('email', '=', username)
      .then((err, user) => {
        if (err) { return done(err); }
        if (!user) {
          return done(null, false, { message: 'Incorrect email.' });
        }
        if (!user.isValid(password)) {
          return done(null, false, { message: 'Incorrect password.' });
        }
        return done(null, user);
      })
  }
));

电子邮件
不是passportjs想要的,但是
用户名
是。

为什么-1?我的问题这么麻烦你?我给出了所有的解释,没有什么不清楚的。
passport.use('local', new LocalStrategy({
  usernameField: 'email',
  passwordField: 'password'
},
  function (username, password, done) {
    knex('user')
      .where('email', '=', username)
      .then((err, user) => {
        if (err) { return done(err); }
        if (!user) {
          return done(null, false, { message: 'Incorrect email.' });
        }
        if (!user.isValid(password)) {
          return done(null, false, { message: 'Incorrect password.' });
        }
        return done(null, user);
      })
  }
));