Zoeken…


middleware

Middleware (ook wel pre- en post-hooks genoemd) zijn functies die tijdens de uitvoering van asynchrone functies worden doorgegeven. Middleware wordt opgegeven op schemaniveau en is handig voor het schrijven van plug-ins. Mongoose 4.0 heeft 2 soorten middleware: document middleware en query middleware. Document middleware wordt ondersteund voor de volgende documentfuncties.

  • in het
  • validate
  • opslaan
  • verwijderen

Query-middleware wordt ondersteund voor de volgende model- en queryfuncties.

  • tellen
  • vind
  • vind een
  • findOneAndRemove
  • findOneAndUpdate
  • bijwerken

Zowel document middleware als query middleware ondersteunen pre- en posthaken.


Pre

Er zijn twee soorten voorhaken, serieel en parallel.

serie-

Seriële middleware worden na elkaar uitgevoerd, wanneer elke middleware de volgende keer roept.

var schema = new Schema(..);
schema.pre('save', function(next) {
  // do stuff
  next();
});

Parallel

Parallelle middleware biedt een fijnere korrelregeling.

var schema = nieuw schema (..);

// `true` means this is a parallel middleware. You **must** specify `true`
// as the second parameter if you want to use parallel middleware.
schema.pre('save', true, function(next, done) {
  // calling next kicks off the next middleware in parallel
  next();
  setTimeout(done, 100);
});

De gekoppelde methode, in dit geval opslaan, wordt pas uitgevoerd nadat elke middleware is voltooid.


Post middleware

post-middleware worden uitgevoerd nadat de gekoppelde methode is voltooid en alle pre-middleware is voltooid. post middleware ontvangt niet direct flow control, bijv. er worden geen volgende of uitgevoerde callbacks doorgegeven. post hooks zijn een manier om traditionele evenementluisteraars voor deze methoden te registreren.

schema.post('init', function(doc) {
  console.log('%s has been initialized from the db', doc._id);
});
schema.post('validate', function(doc) {
  console.log('%s has been validated (but not saved yet)', doc._id);
});
schema.post('save', function(doc) {
  console.log('%s has been saved', doc._id);
});
schema.post('remove', function(doc) {
  console.log('%s has been removed', doc._id);
});


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow