Работал ли с NestJS

Ответ

Да, работал с 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, не прогадаешь.