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-хуках.