J'ai 2 crochets (dans des fichiers différents) sur un modèle comme celui-ci:Changer la priorité des crochets dans mangouste
model.pre('save', function(next) {
if (this.isModified('password'))
this.set('password, hash(this.get('password'))
next()
})
model.pre('save', function() {
if (this.isNew)
this.set('password', generatePassword())
next()
})
Mon premier crochet vient d'un module, il doit être le premier et je ne peux pas modifier il. Il vérifie que le champ du mot de passe a été modifié et le hache s'il l'était. Mon deuxième crochet a été créé par moi, je définis un mot de passe généré aléatoirement lorsque l'utilisateur est créé.
Mon problème est que mon premier hook ne va pas forcer mon mot de passe car il est passé avant le second. J'ai essayé d'appeler this.save
dans mon deuxième crochet mais isModified
est faux si je fais cela.
J'ai dû copier la fonction hash
du premier crochet dans le deuxième fichier pour le faire fonctionner, mais c'est loin d'être parfait.
Donc, je voudrais savoir s'il existe un moyen d'exécuter des hooks dans un ordre de priorité dans mongoose? Merci.