curupiras
v1.1.1
Published
Curupiras é um template back-end que utiliza Express e TypeScript
Downloads
37
Maintainers
Readme
Curupiras (Back-end Template)
Conteúdo
- O que é o curupiras?
- Requisitos para utilizar o curupiras
- O que vem instalado no curupira?
- Instalando o Curupiras
- Configurando as variáveis de ambiente
- Iniciando o Curupiras
- Utils
Introdução
O que é o curupiras?
O Curupiras é um template para criação de API's REST utilizando Express e outras tecnologias.
Como surgiu?
Curupiras surgiu da ideia de economizar tempo na criação de novos projetos, seu principal objetivo é eliminar a complexidade de ter que pensar nas estruturas e configurações básicas de cada projeto.
Atualmente o Curupiras está na primeira versão, qualquer pessoa é bem vinda para sugerir alterações na sua estrutura, libs e configurações.
Requisitos
- Node v16+
- npm ou yarn
- git v2.35+
- tsc v4.5 (opcional) (
npm install -g typescript) - Docker
- Docker Compose
O que vem instalado
Hoje o Curupiras vem com as seguintes libs instaladas:
Dependencias
- argon2
- celebrate
- cors
- dotenv
- express
- express-async-errors
- jsonwebtoken
- mysql
- reflect-metadata
- tsyringe
- typeorm
Dependencias de desenvolvimento
- ts-node-dev
- tsconfig-paths
- typescript
Alem das libs ele também vem pré configurado com Dockerfile e docker-compse.yml, já com os containers do MySQL e da própria API
Instalação
Execute o comando npx curupiras nome-do-seu-projeto, pode ser que apareça uma mensagem pedindo para instalar o curupiras, digite "y" ou "s".
Configure suas variáveis de ambiente no arquivo .env.example e depois remova o .example do nome do arquivo.
Caso pretenda utilizar o Docker execute o comando docker-compose up, o projeto já vem pré configurado com o banco de dados e a aplicação. Lembre de acessar o contêiner que está rodando o mysql e criar o database que foi declarado no .env
Lembrando que o TypeORM não cria o banco o banco de dados, sendo necessário já existir um para que o template funcione.
Configurando as variáveis de ambiente
TYPEORM PATHS
| variavel | valor | descrição | |--|--|--| | TYPEORM_ENTITIES | Não alterar | Indica o diretório onde estão os arquivos das entidades com extensão ts | | TYPEORM_MIGRATIONS | Não alterar | Indica o diretório dos arquivos das migrations com extensão ts| | TYPEORM_MIGRATIONS_DIR | Não alterar | Indica o diretório das migrations |
TYPEORM CONFIG
| variavel | valor | descrição | |--|--|--| | TYPEORM_CONNECTION |string|Indica qual é o banco que estamos utilizando (MySQL, PG, MongoDB, etc)| | TYPEORM_LOGGING |boolean|Habilita o modo debug do TypeORM mostrando todas as querys que são executadas| | TYPEORM_SYNCHRONIZE |boolean|Realiza a sincronização de todas as entidades com o banco de dados ao iniciar|
LOCAL DATABASE | TESTING DATABASE | PROD DATABASE | variavel | valor | descrição | |--|--|--| |TYPEORM_HOST |string|url do banco de dados caso esteja executando com Docker utilize o nome database| |TYPEORM_PORT | string|porta do banco| |TYPEORM_USERNAME|string|usuario do banco| |TYPEORM_PASSWORD|string|senha do banco| |TYPEORM_DATABASE|string|nome do banco|
SERVER
| variavel | valor | descrição | |--|--|--| |APP_PORT|number|Porta que vai rodar a API|
Iniciando o Curupiras
Utilizando com docker
Execute o comando docker-compose up
Sem docker
- Rode as migrations com o comando
npm run migrate - Execute a api com o
npm run dev
Utils
Geração automatica chaves RSA256
O projeto já veio com uma geração de chave public e private, o arquivo está no diretório src > shared > config > jwt
AppError
src > shared > errors
Lançador de erros, a baixo um exemplo de como usar
if (!validPassword) throw new AppError('Invalid user', 401)AppError('Mensagem com erro', status code)
O erro lançado vai ser capturado pelo middleware ErrorHandler
ErrorHandler
src > shared > errors
Serve para tratar os erros inesperados e os erros do AppError, também envia no console um erro customizado.
