Javascript 如何修复在尝试使用knex将用户存储到psql db时“无法读取未定义的属性查询”

Javascript 如何修复在尝试使用knex将用户存储到psql db时“无法读取未定义的属性查询”,javascript,node.js,postgresql,knex.js,Javascript,Node.js,Postgresql,Knex.js,我正在尝试使用OAuth2PassportJS策略使用GoogleAuth。我既不能检查数据库中的现有用户,也不能将新用户保存到数据库中。登录谷歌后,我要么没有收到回复,要么我的查询有问题 我尝试了async/await语法,我尝试了console.log应该由Google发送回的profile对象,但是console.log没有显示 passport.use ( new GoogleStrategy ( { clientID: keys.googleClientID,

我正在尝试使用OAuth2PassportJS策略使用GoogleAuth。我既不能检查数据库中的现有用户,也不能将新用户保存到数据库中。登录谷歌后,我要么没有收到回复,要么我的查询有问题

我尝试了async/await语法,我尝试了console.log应该由Google发送回的profile对象,但是console.log没有显示

passport.use (
  new GoogleStrategy (
    {
      clientID: keys.googleClientID,
      clientSecret: keys.googleClientSecret,
      callbackURL: '/auth/google/callback',
    },
     async (accessToken, refreshToken, profile, done) => { 
      const existingUser = await knex('users').where({googleId: profile.id}).returning('*').then(data =>{
        return data;
      })
      const userParams = {googleId: profile.id}

      if(existingUser){
        done(null, existingUser)
      } else {
        knex ('users').insert(userParams).returning("*").then(data => {
          res.send(data)
        })
      }


每次调用回调时,我都会得到
TypeError:无法读取未定义的属性“query”
error

Hi Boris。您的问题中目前没有足够的细节来了解问题所在。我强烈怀疑您正在使用Express,并且
req
(请求)对象此时在代码中不可用。然而,如果你能提供一个能让其他人进一步帮助你的服务!您好,请出示完整的代码好吗?该错误看起来好像数据库中没有名为users的模型。请再次确认模型是可用的,拼写正确和正确地导入这里查询谢谢你的回答!我已经修复了这个问题,这个问题似乎与index.js中中间件的顺序和回调函数有关。我还意识到serializeUser/deserializeUser函数正在接收数组,因此我必须选择数组的第一个元素。