Quelque part entre la dernière version 3.8.x et 4.0 le post init
hook a été modifié, mais non documenté. Avant le changement this
référencé le document actuel, mais maintenant this
est l'émetteur d'événement qui a déclenché l'appel de hook. La nouvelle façon d'accéder au document actuel consiste à ajouter un paramètre à la fonction de crochet, tout comme le pré save
et remove
crochets.
schema.post('init', function(doc) {
doc._original = doc.toObject();
});
Malheureusement, depuis ce changement, toutes les propriétés non-schéma qui sont ajoutées au document semblent être perdues entre le post init
et pré save
crochets, il n'y a donc aucun moyen de résoudre ce problème pour le moment.
J'ai ouvert un problème (#2952 ) sur Github vendredi dernier. Il y a actuellement 387 problèmes ouverts, donc je ne sais pas à quelle vitesse cela sera résolu. Je publierai une mise à jour si j'entends quelque chose.