Express non basta per progetti grandi
Express (2010) è minimale; la libertà diventa peso in codebase TypeScript enterprise di decine di migliaia di righe. Serve una struttura opinata con:
- Moduli
- Dependency injection
- Decoratori per routing/middleware
- Separazione controller/service/repository
Il pattern è familiare a chi viene da Angular (frontend) o Spring Boot (Java).
Il rilascio
NestJS 1.0 è rilasciato da Kamil Myśliwiec (sviluppatore polacco) il 29 maggio 2017. Licenza MIT. TypeScript-first, costruito su Express (default) o Fastify (opzione). Full-stack con moduli per WebSocket, GraphQL, Microservices, Event-driven.
@Controller('users')
export class UsersController {
constructor(private readonly usersService: UsersService) {}
@Get(':id')
async findOne(@Param('id') id: string) {
return this.usersService.findOne(id);
}
}
Caratteristiche
- Decorator-based —
@Controller,@Get,@Injectable,@Module,@Param - DI container — inversion of control come Angular/Spring
- Modular — moduli riusabili con
@Module({ imports, providers, controllers }) - Pipes — validazione e trasformazione input (class-validator)
- Guards — autorizzazione (JWT, roles)
- Interceptors — logging, cache, response mapping
- Exception filters — error handling centralizzato
- Middleware — Express-compatible
- CLI
nest generate module users— scaffolding
Moduli integrati
- @nestjs/typeorm / @nestjs/sequelize / @nestjs/mongoose / @nestjs/prisma — ORM
- @nestjs/graphql — GraphQL code-first
- @nestjs/microservices — Redis, NATS, Kafka, gRPC, RabbitMQ
- @nestjs/websockets — Socket.IO, ws
- @nestjs/bull — job queues
- @nestjs/swagger — OpenAPI generation
- @nestjs/passport — 500+ auth strategies
- @nestjs/jwt — JSON Web Tokens
- @nestjs/schedule — cron jobs
Versioni
- 1.0 (maggio 2017) — prima release
- 5.0 (luglio 2018) — major refactor
- 7.0 (febbraio 2020) — migliorato DI, event-driven
- 8.0 (luglio 2021) — Fastify 3, TypeScript 4.3
- 10.0 (giugno 2023) — Node 16+, TypeScript 5
- 11.0 (gennaio 2025) — Node 20+, async context storage
Casi d’uso
- API REST/GraphQL enterprise
- Micro-servizi con message broker
- BFF (Backend for Frontend)
- Real-time server con WebSocket
- GraphQL gateway
Nel contesto italiano
NestJS è diffuso in:
- Startup fintech italiane (crypto exchange, neobank)
- Agenzie enterprise che migrano da Java/PHP a Node TS
- SaaS B2B italiani
- PA digitale (alcune API PagoPA, progetti Comune di Milano, Regione Lombardia)
- E-commerce headless
È il framework Node.js preferito dove serve struttura rigorosa e team TypeScript esperti.
Riferimenti: NestJS 1.0 (29 maggio 2017). Kamil Myśliwiec. Licenza MIT. Ispirato ad Angular e Spring. Basato su Express o Fastify. Ecosistema @nestjs/ per GraphQL, Microservices, WebSocket, Swagger. Versione corrente 11.x (2025).*
