Pre Save Hook

Mongoose 🟡 Mid

Définition

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

Analogie

Le dernier contrôle qualité sur la chaîne 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

Générer 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 liés

#sgbd#interview#database#mongoose

← → au clavier pour passer d'une fiche à l'autre