Назад к вопросам
Junior — Middle
90
Могешь описать последовательность обработки входящих запросов в NestJS?
Компании, где спрашивали
Бизнес-Азимут
Ответ от нейросети
sobes.tech AI
В NestJS обработка входящего HTTP-запроса происходит в несколько этапов:
- Приём запроса — Express (или Fastify) получает HTTP-запрос.
- Middleware — запрос проходит через middleware, которые могут изменять запрос или выполнять дополнительные действия (логирование, аутентификация и т.д.).
- Guards — проверяют, разрешён ли доступ к определённому маршруту (например, авторизация).
- Interceptors (перехватчики) — могут изменять данные запроса или ответа, выполнять дополнительные операции до и после вызова обработчика.
- Pipes — преобразуют и валидируют входящие данные (например, преобразование строк в числа).
- Обработчик контроллера — вызывается метод контроллера, соответствующий маршруту.
- Обработка результата — результат обработчика может быть дополнительно обработан интерсепторами.
- Отправка ответа — сформированный ответ отправляется клиенту.
Пример упрощённого потока:
@Get(':id')
@UseGuards(AuthGuard)
@UsePipes(ValidationPipe)
getItem(@Param('id') id: number) {
return this.itemsService.findById(id);
}
Здесь сначала сработает guard для проверки доступа, затем pipe для валидации параметра, после чего вызовется метод контроллера.