Back to questions
Junior — Middle
85
Можете объяснить механизм функционирования цепочки обработчиков в NestJS?
Answer from AI
sobes.tech AI
В NestJS цепочка обработчиков реализуется через middleware, guards, interceptors и pipes, которые последовательно обрабатывают входящий запрос. Каждый из этих компонентов может выполнять свою задачу — например, middleware может логировать запросы, guards проверять авторизацию, pipes валидировать и трансформировать данные, а interceptors — изменять поведение метода или результат.
Механизм похож на цепочку обязанностей: запрос проходит через последовательность обработчиков, каждый из которых может либо передать управление дальше, либо прервать выполнение.
Пример middleware в NestJS:
@Injectable()
export class LoggerMiddleware implements NestMiddleware {
use(req: Request, res: Response, next: Function) {
console.log(`Request... ${req.method} ${req.url}`);
next();
}
}
Этот middleware вызывается в цепочке и после своей работы вызывает next(), чтобы передать управление следующему обработчику.