Um template robusto e pronto para produção para construir APIs Node.js.
Este projeto é construído sobre os pilares da Arquitetura Limpa (Clean Architecture), S.O.L.I.D. e Domain-Driven Design (DDD), usando as ferramentas mais modernas do ecossistema TypeScript.
- Node.js
- TypeScript
- Express: Servidor web
- Docker e Docker Compose: Ambiente de banco de dados (PostgreSQL)
- TypeORM (v0.3+): ORM para comunicação com o banco
- TSyringe: Contêiner de Injeção de Dependência (DI)
- Bcrypt.js e JWT: Para autenticação
- Class-transformer e Class-validator: Para validação de DTOs e formatação de Views (JSON de resposta)
- DotEnv: Gerenciamento de variáveis de ambiente
- Express-Async-Errors: Tratamento de erros em rotas assíncronas
Siga os passos abaixo para rodar o projeto localmente.
- "Use este template" no GitHub para criar seu novo repositório, ou clone este repo.
- Entre na pasta do projeto:
cd seu-projeto - Instale as dependências:
npm install
-
Copie o arquivo de exemplo
.envpara criar seu arquivo de ambiente local:cp .env.example .env
(O arquivo
.envé pessoal e ignorado pelo Git) -
Verifique o arquivo
.enve ajuste as portas ou senhas, se necessário. Os valores padrão já estão configurados para funcionar com o Docker Compose.
-
Inicie o container do PostgreSQL em segundo plano (
-d):docker-compose up -d
-
(Opcional) Para acessar a interface gráfica (Adminer) do banco, acesse:
http://localhost:8080- Sistema:
PostgreSQL - Servidor:
postgres_db - Usuário:
docker - Senha:
dockerpass - Banco de Dados:
template_api
- Sistema:
Com o banco no ar, precisamos criar as tabelas. O projeto usa migrations do TypeORM para isso.
npm run migration:run