Comments (8)
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.
from forest-express-mongoose.
Not entirely. When using findByIdAndUpdate
for example, no document is ever loaded in mongoose so no hook can be executed.
But when doing a findOne
call and then save
the hooks will be executed. But I guess ForestAdmin implemented it with update calls. They could change it to save
calls but it would incur extra overhead.
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.
from forest-express-mongoose.
Actually the problem comes from Mongoose :
"Pre and post save() hooks are not executed on update()"
https://mongoosejs.com/docs/middleware.html
from forest-express-mongoose.
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.
from forest-express-mongoose.
Hi @Christilut,
Thanks for the feedback, I am sorry but I cannot provide any ETA for a fix.
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. 🤓
from forest-express-mongoose.
Really need this ASAP
from forest-express-mongoose.
All these hooks are working on Forest/mongoose. You can use the following examples inside a mongoose model definition file.
If you have an issue using hooks please provide a reproducing minimal code and versions in a new ticket.
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);
});
from forest-express-mongoose.
Solution provided in the last message.
from forest-express-mongoose.
Related Issues (20)
- TypeError: Class constructor ObjectId cannot be invoked without 'new' HOT 4
- export ResourceSerializer in type definition
- Forest Admin UI incorrectly display nested field HOT 2
- Smart Ations fields hooks endpoint cannot authenticate HOT 5
- Is this still supported? HOT 2
- Update document example from documentation doesn't seem to work HOT 1
- TypeError: RecordsRemover is not a constructor HOT 3
- Forest Admin Dashboard display mongoose mixed data type as [object,object]
- Forestadmin with Typescript project and MongoDB Atlas Free Plan
- Should be able to specify location of .forestadmin-schema.json HOT 1
- Non-Date types that store Date values cannot be rendered as a time-based Chart HOT 1
- Nested Enum types do not have values in the schema and crash the Create page in the UI HOT 7
- Smart relationship does not query the route HOT 4
- Smart actions - primaryKeys not generated in forestadmin schema HOT 2
- Smart Relationships are all empty in 7.8.4 and after
- Weird behaviour with certain model names HOT 1
- Having trouble connecting HOT 2
- Impossible to delete values in array field
- Can't user react components for smart views
- Vulnerability Notice on moment-timezone. HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from forest-express-mongoose.