Pre Save Hook

Mongoose 🟡 Mid

Definition

Middleware execute avant chaque appel a document.save(). Permet de modifier le document (hashing, timestamps, validation custom) avant sa persistence en base.

Analogie

Le dernier controle qualite sur la chaine de montage avant de mettre le produit en boite.

Exemple de code

schema.pre('save', function(next) {
  if (!this.slug) {
    this.slug = this.title
      .toLowerCase()
      .replace(/\s+/g, '-');
  }
  next();
});

Cas d'usage

Generer automatiquement un slug, un hash de mot de passe ou un timestamp a chaque sauvegarde.

Anti-pattern

Modifier this dans un pre save avec une arrow function, qui ne lie pas le bon this.

Termes lies

#sgbd#interview#database#mongoose