Um template robusto para aplicações Node.js com Express, fornecendo uma estrutura base com várias funcionalidades essenciais pré-configuradas.
- ✅ Setup completo com TypeScript
- 🔒 Middleware de autenticação JWT
- 🔑 Sistema de autorização baseado em roles
- 📊 Métricas com Prometheus
- 🛡️ Configurações de CORS e Helmet para segurança
- 🔍 Sistema robusto de tratamento de erros
- 📝 Logging de requisições
- 🗄️ Integração com Prisma ORM
- 🧪 Testes unitários com Jest
src/
├── config/ # Configurações da aplicação
├── controllers/ # Controladores
├── errors/ # Classes de erro personalizadas
├── middlewares/ # Middlewares da aplicação
├── routes/ # Rotas da API
└── tests/ # Testes unitários
- Node.js
- TypeScript
- Express
- Prisma
- Jest
- Prometheus
- JWT
- Cors
- Helmet
- Zod
- Pino (Logging)
- Clone o repositório:
git clone [url-do-repositório]- Instale as dependências:
npm install- Configure as variáveis de ambiente:
cp .env.example .env- Configure as variáveis necessárias no arquivo
.env:
PORT=8080
DATABASE_URL=
JWT_SECRET=
- Execute o projeto:
npm run devGET /health- Verifica o status da aplicação
GET /metrics- Retorna métricas do Prometheus
O template inclui várias camadas de segurança:
- Autenticação JWT
- CORS configurável
- Headers de segurança com Helmet
- Sistema de autorização baseado em roles
- Sanitização de entradas
Para executar os testes:
npm testO sistema possui classes de erro personalizadas para diferentes cenários:
AppError: Erro base da aplicaçãoHttpErrors: Erros relacionados a HTTPPrismaErrors: Erros relacionados ao banco de dadosUserErrors: Erros relacionados a usuários
O template inclui configuração básica do Prometheus para monitoramento de métricas.
Configuração disponível em prometheus.yml:
scrape_configs:
- job_name: "express-app"
static_configs:
- targets: ["localhost:8080"]This project is licensed under the MIT License - see the LICENSE file for details.