小编use*_*520的帖子

Mongoose findOne 查询返回旧数据,是否发生了一些缓存?

我有一个使用一些属性创建的用户模型,这些属性稍后在用户激活后被删除。我注意到这些属性在用户发起忘记密码请求后重新出现。

当我单步执行代码(它是一个快速应用程序)时,我在忘记密码控制器中有一个 User.findOne 请求,该请求返回仍然具有已删除属性的用户文档,因此当我保存密码重置令牌。

function forgotPassword(req, res, next) {
  const username = req.body.username;

  // Generate token
  const token = uuid.v4();

  // Find the user
  User.findOne({ username: username }, function(err, user) {
    if (err) {
      return next(err);
    }
    // At this stage user also has the properties that 
    // were previously deleted when I inspect it
    user.resetToken = token;
    user.save(function(err, savedUser, numAffected) { 
      // So resetToken gets saved but also the previously deleted properties
      ...
    });
Run Code Online (Sandbox Code Playgroud)

我在数据库中验证了它们在用户激活时被删除,然后在忘记密码请求后重新出现。

Mongoose 对 findOne 请求是否有某种缓存? …

mongoose mongodb node.js express

5
推荐指数
0
解决办法
1457
查看次数

标签 统计

express ×1

mongodb ×1

mongoose ×1

node.js ×1