猫鼬没有找到价值

mongoose isn't finding the value

为什么密码正确时总是 return 无效凭据? 谢谢你!

const schema = mongoose.Schema({
    pass: {
      type: String,
      required: true,
    }
  })
const password = mongoose.model('pass', schema)

mongo().then(async (mongoose) => {
  const test = new password({
    password: 'pass'
  })
  password.findOne({ password: passwordInput }, function (err, user) {
    if (err) {
      console.log(err);
    }
    else if (user) {
      log('LOGGED IN!')
    }
    else {
      log('Invalid creds');
    }
  });
})

您的代码存在一些问题

const schema = mongoose.Schema({
    pass: { // <---- property name is pass not password
      type: String,
      required: true,
    }
})

那么这里

const test = new password({
    password: 'pass' // property name password not pass
})

同样上面的代码没有将密码保存到数据库中。您需要致电 save()

const test = new password({
    password: 'pass' // property name password not pass
})
test.save();

即使这样它也不会工作,因为保存方法是异步的,这意味着它需要一些时间才能到达数据库。所以你需要做这样的事情

const test = new password({
    password: 'pass'
})
test.save(function(){
    // this function is called after the password was saved to db
    // now you can query db
    password.findOne({ pass.....
});

完整代码

const schema = mongoose.Schema({
    password: {
        type: String,
        required: true,
    }
})
const password = mongoose.model('password', schema)

mongo().then(async (mongoose) => {
    const test = new password({
        password: 'pass'
    })
    test.save(function(){
        password.findOne({ password: passwordInput }, function (err, user) {
            if (err) {
                console.log(err);
            } else if (user) {
                log('LOGGED IN!')
            }  else {
                log('Invalid creds');
            }
        });
    });
})