mongoose
mangusta przed i po oprogramowaniu pośrednim (haki)
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);
});