advanced

Middleware

Используйте pre и post hooks осторожно для cross-cutting persistence behavior, не пряча business side effects.

Middleware Mongoose выполняется до или после операций document, query, aggregate или model. Типично: timestamps, хеш паролей, audit-поля — но хуки скрывают поток управления.

| Scope хука | Срабатывает на | |------------|----------------| | Document | `save`, `remove` и т.д. | | Query | `find`, `updateMany` и т.д. |

На интервью: pre/post hooks, document vs query middleware, распространение ошибок и почему бизнес-процессы должны быть видны в сервисах.

Типовые ошибки: операции без ожидаемых хуков; сеть или лишние записи в хуках, ломающие транзакции; непротестированные пути для реальной операции в production.

Компромисс — централизованное cross-cutting поведение против отлаживаемости.

Чеклист:

  • Знайте тип хука и триггер.
  • Держите побочные эффекты явными.
  • Тестируйте middleware на реальном пути операции.
  • Избегайте тяжёлой работы в горячих query-хуках.