findByIdAndUpdate未更新MongoDB上的文档

findByIdAndUpdate未更新MongoDB上的文档,mongodb,express,Mongodb,Express,我正在尝试创建一个Api,在使用NodeEmailer向用户发送密码重置电子邮件之前更新我的MongoDB。除了出于某种原因进行的数据库更新之外,一切正常。我正在使用findByIdAndUpdate进行更新。 我的api以 router.put('/forgot',[auth, [check('email', 'Please include a valid email').isEmail()]],async (req, res) => { const errors = valid

我正在尝试创建一个Api,在使用NodeEmailer向用户发送密码重置电子邮件之前更新我的MongoDB。除了出于某种原因进行的数据库更新之外,一切正常。我正在使用findByIdAndUpdate进行更新。 我的api以

    router.put('/forgot',[auth, [check('email', 'Please include a valid email').isEmail()]],async (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
  return res.status(400).json({ errors: errors.array() });
}
const { email } = req.body;
try {
  let user = await User.findOne({ email });
  if (!user) {
    return res.status(400).json({
      errors: [
        {
          msg:
            'That email addrss is not recognized. Please try again or register for a new account ',
        },
      ],
    });
  }

  var email_token = crypto.randomBytes(64).toString('hex');

  const payload = {
    id: user.id,
    resetPasswordToken: email_token,
    resetPasswordExpires: Date.now() + 3600000,
  };

  user = await User.findByIdAndUpdate(
    user.id,
    { $set: payload },
    { new: true }
  );
  console.log(user);
  res.json(user);

谢谢Joe和Mohammed,从Mohammed的问题中,我意识到我没有在用户模型中定义resetPasswordToken和resetPasswordExpires。我一做到这一点,每件事都像魔术一样奏效。非常感谢你

谢谢Joe和Mohammed,从Mohammed的问题中,我意识到我没有在用户模型中定义resetPasswordToken和resetPasswordExpires。我一做到这一点,每件事都像魔术一样奏效。非常感谢你

在最终输出中,
console.log(user)
是什么?我们需要查看用户模型,而不是Joe和Mohammed,从Mohammed的问题中,我意识到我没有在用户模型中定义resetPasswordToken和resetPasswordExpires。我一做到这一点,每件事都像魔术一样奏效。非常感谢你!在最终输出中,
console.log(user)
是什么?我们需要查看用户模型,而不是Joe和Mohammed,从Mohammed的问题中,我意识到我没有在用户模型中定义resetPasswordToken和resetPasswordExpires。我一做到这一点,每件事都像魔术一样奏效。非常感谢你!