#7 – Guards, Middleware и Pipes
Відеоурок
При разработке серверных приложений важно не только обрабатывать запросы и хранить данные, но и контролировать то, как именно запросы проходят через систему. В NestJS для этого существуют три ключевых инструмента: middleware, pipes и guards. Каждый из них выполняет свою роль и помогает сделать архитектуру более чистой и гибкой.
Middleware — это промежуточный слой, который срабатывает ещё до попадания запроса в контроллер. С его помощью удобно реализовывать такие задачи, как логирование запросов, добавление данных в объект request, базовая проверка токенов или модификация тела запроса. Middleware действует глобально или на уровне отдельных маршрутов и напоминает фильтр, через который проходят все входящие данные.
Pipes — это механизм для трансформации и валидации данных. Они проверяют входящие значения и при необходимости преобразуют их. Например, можно автоматически преобразовать строку в число или проверить, что поле действительно является строкой и не пустое. В связке с DTO и библиотекой class-validator pipes помогают держать входящие данные в порядке и предотвращают ошибки ещё до попадания их в бизнес-логику.
Guards — это защитный слой, который определяет, можно ли пользователю получить доступ к конкретному маршруту. В отличие от middleware, guards работают на уровне бизнес-логики авторизации: они решают, есть ли у пользователя права для выполнения действия. Классический пример — проверка авторизационного токена в заголовках запроса. Если токен неверный или отсутствует, доступ к контроллеру блокируется.
Матеріали для курсу
Щоб завантажувати матеріали до відеокурсів, необхідно оформити підписку на сайт
Завдання до уроку
Необхідно оформити передплату на проект, щоб отримати доступ до всіх домашніх завдань
Велике завдання за курсом
Вам необхідно оформити передплату на сайті, щоб мати доступ до всіх великих завдань. У завдання входить методика рішення, а також готовий проект з відповіддю до завдання.
PS: подібні завдання доступні при підписці від 1 місяця
Також варто подивитися