Szukaj…


Middleware

Oprogramowanie pośrednie (zwane także przechwytywaniem przed i po) to funkcje, które są przekazywane do kontroli podczas wykonywania funkcji asynchronicznych. Oprogramowanie pośrednie jest określone na poziomie schematu i jest przydatne do pisania wtyczek. Mongoose 4.0 ma 2 typy oprogramowania pośredniego: oprogramowanie pośrednie dla dokumentów i oprogramowanie pośredniczące dla zapytań. Oprogramowanie pośrednie dokumentów jest obsługiwane dla następujących funkcji dokumentów.

  • w tym
  • uprawomocnić
  • zapisać
  • usunąć

Oprogramowanie pośredniczące zapytania jest obsługiwane dla następujących funkcji modelu i zapytania.

  • liczyć
  • odnaleźć
  • findOne
  • findOneAndRemove
  • findOneAndUpdate
  • aktualizacja

Zarówno oprogramowanie pośrednie dla dokumentów, jak i oprogramowanie pośredniczące dla zapytań obsługują przechwytywanie przed i po.


Przed

Istnieją dwa rodzaje zaczepów wstępnych, szeregowy i równoległy.

Seryjny

Szeregowe oprogramowanie pośrednie jest uruchamiane jeden po drugim, gdy każde kolejne oprogramowanie pośrednie wywołuje następne.

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

Równolegle

Równoległe oprogramowanie pośrednie zapewnia bardziej precyzyjną kontrolę przepływu.

var schema = new 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);
});

Metoda przechwycona, w tym przypadku składowanie, nie zostanie wykonana, dopóki nie zostanie wywołana przez każde oprogramowanie pośrednie.


Publikuj oprogramowanie pośrednie

oprogramowanie pośrednie po wykonaniu jest wykonywane po zakończeniu metody przechwytywania i po zakończeniu całego jego oprogramowania pośredniego. oprogramowanie pośredniczące post nie otrzymuje bezpośrednio kontroli przepływu, np. nie są przekazywane do niego żadne następne lub wykonane wywołania zwrotne. haczyki pocztowe to sposób na zarejestrowanie tradycyjnych detektorów zdarzeń dla tych metod.

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow