Melhores Práticas do Express
Um resumo condensado das 25 práticas mais importantes do Express 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 Express para equipes Node.js - extraído de todas as páginas desta seção.
Use Express 5 no Node 24 LTS: O tratamento de erros assíncrono nativo remove boilerplate de encapsulamento - Migração para Express 5.
Rotas finas, serviços robustos: Manipuladores de rota analisam, chamam o serviço, retornam a resposta. Sem SQL nas rotas.
Registre express.json() antes das rotas: req.body vazio é o principal bug do Express - Ordem do Middleware.
Defina limites de tamanho do corpo: express.json({ limit: "1mb" }) previne ataques de payload.
Confie no proxy com contagem de saltos: Não true - previne falsificação de IP - Consciência de Proxy Reverso.
Limite de taxa após trust proxy: Caso contrário, todos os clientes compartilham o IP do balanceador de carga.
Use helmet em todas as APIs públicas: Cabeçalhos de segurança são um reforço gratuito - Middleware de Segurança.
Configure CORS com origens explícitas: Nunca origin: * com credentials: true.
Limites de taxa mais rigorosos em endpoints de autenticação: 10 tentativas por 15 minutos no login.
Middleware de erro de quatro argumentos por último: Captura throws e promessas rejeitadas - Tratamento de Erros no Express.
Classe AppError personalizada com códigos de status: Respostas consistentes de 404/422/500.
Nunca exponha traces de pilha para clientes: Registre no lado do servidor, retorne mensagem genérica de 500.
Catch-all 404 antes do manipulador de erros: Rotas desconhecidas precisam de tratamento explícito.
Escopo da autenticação para roteadores protegidos: /health e webhooks permanecem públicos.
Use Router por domínio: /users, /orders em arquivos separados.
Desabilite x-powered-by: app.disable("x-powered-by").
Defina timeouts do servidor: keepAliveTimeout, headersTimeout, requestTimeout no servidor subjacente.
Desligamento gracioso em SIGTERM: Feche o servidor antes de sair para implantações sem tempo de inatividade.
Valide a entrada com Zod na fronteira: Antes da camada de serviço, não dentro dela.
Use res.status(n).json() em vez de res.send(status): O Express 5 removeu o padrão antigo.
Rotas curinga usam sintaxe /*splat: Mudança de quebra no Express 5 em relação a /*.
Perfure antes de mudar para Fastify: O banco de dados é geralmente o gargalo - Desempenho no Express.
Configuração de ambiente via process.env + esquema: Sem portas ou segredos codificados.
Testes de integração com supertest: Teste a ordem do middleware e os formatos de erro.
Documente o contrato de erro da API no OpenAPI: A saída do middleware de erro deve corresponder à especificação.
Ordem do middleware: parser de corpo após as rotas, ou limitador de taxa antes do trust proxy. Corrija a ordem antes de otimizar qualquer outra coisa.
Express se a equipe o conhece e o throughput é adequado. Fastify se você deseja validação de esquema e desempenho base mais alto. Veja ADR Fastify vs Express.
Sim. Digite extensões Request para userId e formatos de corpo validados. Veja Tipando Manipuladores do Express e Fastify.
src/routes/, src/services/, src/middleware/, src/app.ts, src/server.ts. Um arquivo de roteador por domínio.
Use-o como referência, não como um template de produção. Aplicações modernas precisam de TypeScript, ESM e tratamento de erros estruturado desde o início.
Versões da Stack: Esta página foi escrita para Node.js 24.18.0 (LTS Ativo), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 e NestJS 11.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026