Mon goose isModified и isNew - PullRequest
       6

Mon goose isModified и isNew

2 голосов
/ 21 марта 2020

Я видел этот пример в разных уроках, и мне просто интересно, почему это работает с новыми документами. Новые документы считаются измененными? Разве мы не должны использовать this.isNew || this.isModified вместо isModified?

  try {
      if (!this.isModified("password")) {
        return next();
      }
      let hashedPassword = await bcrypt.hash(this.password, 10);
      this.password = hashedPassword;
      return next();
  } catch (err) {
      return next(err);
 }
});

1 Ответ

1 голос
/ 21 марта 2020

Документация по этому поводу не очень понятна, поэтому давайте изучим это, попробовав:

schema.pre("save", async function(next) {
  console.log("password isModified: ", this.isModified("password"));
  console.log("isNew: ", this.isNew);
  next();
});

Когда мы создадим нового пользователя, вывод будет таким:

password isModified:  true
isNew:  true

Итак, мы видим this.isModified("password") это true. Таким образом, мы можем понять, что this.isModified("password") также верно для новых документов.

...