Модули (Modules): Организуют код приложения в логические группы. Каждый модуль может экспортировать и импортировать другие модули.
Контроллеры (Controllers): Обрабатывают входящие запросы и возвращают ответы. Определяют маршруты и привязывают их к методам класса.
Провайдеры (Providers): Служат для внедрения зависимостей. Могут быть сервисами, репозиториями, фабриками или любыми пользовательскими классами.
Сервисы (Services): Инкапсулируют ключевую логику бизнеса, доступную для использования в контроллерах и других провайдерах.
Также используются:
Мидлвары (Middleware): Функции, которые выполняются до обработчика маршрута. Используются для аутентификации, логирования, модификации запросов и ответов.
Пайпы (Pipes): Преобразуют входящие данные и валидируют их.
Гарды (Guards): Определяют, имеет ли пользователь доступ к конкретному маршруту или ресурсу.
Интерсепторы (Interceptors): Позволяют привязывать дополнительную логику до и после выполнения метода, например, трансформировать результат или обрабатывать исключения.
Фильтры исключений (Exception Filters): Перехватывают необработанные исключения и отправляют форматированный ответ клиенту.