Melhores Práticas do NestJS
Um resumo condensado das 25 práticas mais importantes do NestJS para equipes Node.js - extraído de todas as páginas desta seção.
Busque em todas as páginas da documentação
Um resumo condensado das 25 práticas mais importantes do NestJS para equipes Node.js - extraído de todas as páginas desta seção.
Use NestJS 11 no Node 24 LTS: Versão principal atual com suporte a Express 5 e Fastify 5 - Noções Básicas do NestJS.
Adaptador Fastify por padrão: 20-40% mais rápido que o adaptador Express - Realidade de Desempenho do NestJS.
Um módulo por domínio: UsersModule, OrdersModule, BillingModule. Sem provedores "deus" no AppModule.
Exporte apenas o que outros módulos precisam: Mantenha os provedores privados por padrão.
Controllers enxutos: Delegue para services; controllers lidam apenas com preocupações HTTP.
Services injetáveis para lógica de negócios: Testáveis, com DI (Injeção de Dependência), responsabilidade única.
Global ValidationPipe com whitelist: Remova propriedades desconhecidas de DTOs.
DTOs com decoradores class-validator: Cada corpo POST/PUT tipado e validado.
Guards para autenticação: Não middleware, não interceptor - Guards, Interceptors & Pipes.
Decorador @Public() para rotas de health/auth: Sondas K8s não devem exigir tokens.
Interceptors seletivos: Não cinco interceptors globais em todas as rotas.
PrismaService com hooks de ciclo de vida: $connect na inicialização, $disconnect ao destruir - NestJS + Prisma/TypeORM.
Provedores singleton por padrão: Escopo de requisição apenas para estado específico da requisição.
Tokens de provedor customizados para interfaces: Symbol + useClass para implementações substituíveis.
overrideProvider em testes: Simule banco de dados, e-mail e clientes externos.
ConfigModule global com validação: Esquema Joi ou Zod no env na inicialização.
Filtro de exceção global: JSON de erro consistente em todos os endpoints.
setGlobalPrefix com exclusão de health: /api/v1 para rotas, /health direto.
Evite dependências circulares: Refatore antes de usar forwardRef em todo lugar.
Versionamento de padrão de mensagem para microsserviços: order.create.v2 - Modo Microsserviços.
HTTP + microsserviço híbrido para health: Mantenha o health HTTP mesmo com transporte TCP.
Profile antes de culpar o NestJS: O banco de dados geralmente é o gargalo.
Retorne objetos simples de services: Evite sobrecarga do class-transformer nas respostas.
CLI para scaffolding: nest g module, nest g controller, nest g service.
Não use NestJS para APIs de 5 endpoints: O peso do framework deve corresponder à complexidade.
Monolitos modulares, equipes que desejam estrutura semelhante ao Spring, microsserviços com múltiplos transportadores e projetos com mais de 30 endpoints.
Fastify, a menos que uma dependência crítica exija Express. A diferença de desempenho é real.
Prisma para DX e migrações. TypeORM para entidades com decoradores e bases de código TypeORM existentes. Escolha um.
Máximo de 2 controllers e 3-5 provedores por módulo de funcionalidade. Divida quando um arquivo de módulo exceder 200 linhas.
Apenas quando você precisar de comunicação orientada a eventos ou RPC entre serviços. REST HTTP é mais simples para a maioria dos casos.
Versões da Stack: Esta página foi escrita para Node.js 24.18.0 (Active LTS), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 e NestJS 11.
Revisado por Chris St. John·Última atualização: 19 de jul. de 2026