-
Notifications
You must be signed in to change notification settings - Fork 28
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mongoose hooks #121
Comments
Is this going to get fixed? This completely prevents anyone from using Forest in combination with Mongoose right now. Sure someone might not use hooks but as soon as they do, Forest falls apart. |
Hi @Christilut, As a side note, I am not sure that Mongoose hooks are widely used as we have a lot of customers using Mongoose without any concern. As the liana code is open source, it would make us very happy if you could contribute and fix it. 🤓 |
Hey @arnaudbesnier, Any update on this issue? Also, if you guys have other issues to fix first, could you give me some pointers on how to fix this? I might pick it up myself. |
Really need this ASAP |
Actually the problem comes from Mongoose : |
Not entirely. When using Personally I think it should work like the second method because hooks not firing is not developer friendly and a surprise for anyone working with this. Especially since we have no say in what an update call actually does, the hooks were the perfect place to add extra logic. |
All these hooks are working on Forest/mongoose. You can use the following examples inside a mongoose model definition file. To capture new record creation: schema.pre('save', function () {
console.log('YOU will save a user');
});
schema.post('save', function (doc) {
console.log('YOU just saved a user', doc);
});
schema.pre('validate', function() {
console.log('you will validate users');
});
schema.post('validate', function() {
console.log('you just validated users');
}); To capture record update: schema.pre('findOneAndUpdate', function () {
console.log('YOU will update a user');
});
schema.post('findOneAndUpdate', function (doc) {
console.log('YOU just updated a user', doc);
}); To capture record deletion (from list or from record details) from Forest: schema.pre('remove', { query: true, document: false }, function () {
console.log('YOU will query remove a user');
});
schema.post('remove', { query: true, document: false }, function (doc) {
console.log('YOU just query removed a user', doc);
}); |
Solution provided in the last message. |
Expected behavior
I would expect that mongoose hooks are executed, eg
pre('save', ...
Actual behavior
When saving a document through the forest admin interface, the document is updated in the database but hook was never executed.
Hook does execute when I run the
save()
function in my code.Context
The text was updated successfully, but these errors were encountered: