Mejores prácticas de NestJS
Un resumen condensado de las 25 prácticas más importantes de NestJS para equipos de Node.js, extraídas de cada página de esta sección.
Busca en todas las páginas de la documentación
Un resumen condensado de las 25 prácticas más importantes de NestJS para equipos de Node.js, extraídas de cada página de esta sección.
Usa NestJS 11 en Node 24 LTS: Versión principal actual con soporte para Express 5 y Fastify 5 - Conceptos básicos de NestJS.
Adaptador Fastify por defecto: 20-40% más rápido que el adaptador Express - Realidad del rendimiento de NestJS.
Un módulo por dominio: UsersModule, OrdersModule, BillingModule. Sin proveedores "dios" en AppModule.
Exporta solo lo que otros módulos necesiten: Mantén los proveedores privados por defecto.
Controladores delgados: Delega a los servicios; los controladores solo manejan las preocupaciones HTTP.
Servicios inyectables para la lógica de negocio: Probables, conectados por DI, de responsabilidad única.
ValidationPipe global con lista blanca: Elimina propiedades desconocidas de los DTO.
DTOs con decoradores class-validator: Cada cuerpo de POST/PUT tipado y validado.
Guards para autenticación: No middleware, no interceptor - Guards, Interceptors y Pipes.
Decorador @Public() para rutas de salud/autenticación: Las sondas de K8s no deben requerir tokens.
Interceptors selectivos: No cinco interceptors globales en cada ruta.
PrismaService con hooks de ciclo de vida: $connect al inicio, $disconnect al destruir - NestJS + Prisma/TypeORM.
Proveedores singleton por defecto: El ámbito de solicitud solo para el estado específico de la solicitud.
Tokens de proveedor personalizados para interfaces: Symbol + useClass para implementaciones intercambiables.
overrideProvider en pruebas: Simula bases de datos, correo electrónico y clientes externos.
ConfigModule global con validación: Esquema Joi o Zod en el entorno al inicio.
Filtro de excepciones global: JSON de error consistente en todos los endpoints.
setGlobalPrefix con exclusión de salud: /api/v1 para rutas, /health sin prefijo.
Evita dependencias circulares: Refactoriza antes de forwardRef en todas partes.
Versionado de patrones de mensajes para microservicios: order.create.v2 - Modo Microservicios.
HTTP híbrido + microservicio para salud: Mantén la salud HTTP incluso con transporte TCP.
Realiza un perfil antes de culpar a NestJS: La base de datos suele ser el cuello de botella.
Devuelve objetos planos desde los servicios: Evita la sobrecarga de class-transformer en las respuestas.
CLI para scaffolding: nest g module, nest g controller, nest g service.
No uses NestJS para APIs de 5 endpoints: El peso del framework debe coincidir con la complejidad.
Monolitos modulares, equipos que desean una estructura similar a Spring, microservicios con múltiples transportadores y proyectos con más de 30 endpoints.
Fastify a menos que una dependencia crítica requiera Express. La diferencia de rendimiento es real.
Prisma para DX y migraciones. TypeORM para entidades de decorador y bases de código TypeORM existentes. Elige uno.
Máximo 2 controladores y 3-5 proveedores por módulo de característica. Divide cuando un archivo de módulo exceda las 200 líneas.
Solo cuando necesites comunicación basada en eventos o RPC entre servicios. HTTP REST es más simple para la mayoría de los casos.
Versiones de la pila: Esta página fue escrita para Node.js 24.18.0 (LTS activa), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 y NestJS 11.
Revisado por Chris St. John·Última actualización: 19 jul 2026