Ответ
Да, работал с NestJS. Это фреймворк для создания масштабируемых серверных приложений на Node.js, использующий TypeScript и вдохновленный Angular.
Основные фичи:
- Модульная архитектура (декораторы
@Module,@Controller,@Injectable) - Поддержка DI (Dependency Injection)
- Интеграция с Express/Fastify
- Мидлвары, гуарды, интерсепторы, пайпы
Пример контроллера:
import { Controller, Get } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(): string {
return 'All cats';
}
}
Использовал в проектах с MongoDB (через @nestjs/mongoose), REST/GraphQL API, микросервисами (с Kafka/RabbitMQ).
Ответ 18+ 🔞
Ну, я с этим NestJS, конечно, работал. Это, блядь, такая штука для серверных приложений на Node.js, только на TypeScript, и архитектура там, ёпта, как в Angular — модульная, вся такая красивая. В общем, не просто Express, где ты как бомж в подвале код пишешь, а с каким-то порядком.
Основные плюшки, которые сразу в глаза бросаются:
- Архитектура модульная. Ты всё разбиваешь на модули через
@Module, контроллеры через@Controller, сервисы через@Injectable. Всё аккуратненько, не как у распиздяев. - Внедрение зависимостей (DI). О, это вообще песня. Не надо самому создавать экземпляры классов и передавать их куда попало. Фреймворк сам всё подкинет, куда надо. Удобно, бля, волнение ебать как удобно.
- Под капотом Express или Fastify. То есть вся мощь этих либ у тебя есть, но обёрнута в удобный фреймворк.
- Куча встроенных ништяков: мидлвары, гуарды, интерсепторы, пайпы... В общем, чтобы не изобретать велосипед на ровном месте.
Вот, смотри, как простой контроллер выглядит — чисто для примера:
import { Controller, Get } from '@nestjs/common';
@Controller('cats')
export class CatsController {
@Get()
findAll(): string {
return 'All cats';
}
}
Видишь? Красиво, чётко. Никакого лишнего говна. Просто говоришь: «Эй, по пути /cats на GET-запрос верни строку». И всё, блядь, работает.
А где я его применял? Да везде, где проект больше, чем «Hello World». С MongoDB через @nestjs/mongoose — вообще огонь, не надо с этой mongoose-ерундой самому разбираться. Делал и REST API, и GraphQL API — для последнего там отдельный модуль есть, всё готовое. А когда понадобилось микросервисы пилить с общением через Kafka — тоже зашло на ура. В общем, инструмент серьёзный, для взрослых дядек. Если не хочешь, чтобы твой бэкенд был одной большой свалкой кода — бери NestJS, не прогадаешь.