Поиск…


Промежуточное

Среднее ПО (также называемое pre и post hooks) - это функции, которым передается управление во время выполнения асинхронных функций. Среднее программное обеспечение указано на уровне схемы и полезно для написания плагинов. Mongoose 4.0 имеет 2 типа промежуточного программного обеспечения: промежуточное программное обеспечение документов и промежуточное ПО запроса. Средство промежуточного документа поддерживается для следующих функций документа.

  • в этом
  • утверждать
  • спасти
  • Удалить

Запрошенное промежуточное ПО поддерживается для следующих функций Model и Query.

  • подсчитывать
  • находить
  • findOne
  • findOneAndRemove
  • findOneAndUpdate
  • Обновить

Оба промежуточного программного обеспечения и промежуточное программное обеспечение запросов поддерживают до и после перехвата.


до

Существует два типа предварительных крючков, последовательный и параллельный.

последовательный

Последовательное промежуточное программное обеспечение выполняется один за другим, когда каждое промежуточное программное обеспечение вызывает следующее.

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

Параллельно

Параллельное промежуточное ПО предлагает более мелкозернистый контроль потока.

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);
});

Метод hooked, в этом случае save, не будет выполняться до тех пор, пока каждое промежуточное программное обеспечение не вызывается.


Почтовое промежуточное ПО

после промежуточного программного обеспечения выполняются после метода hooked и все его предварительное промежуточное программное обеспечение завершено. post middleware не получают непосредственного управления потоком, например, никакие последующие или выполненные обратные вызовы не передаются ему. post hooks - способ регистрации традиционных прослушивателей событий для этих методов.

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow