Pre Save Hook
Mongoose 🟡 MidDefinition
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.