https://github.com/tayron/udemy-api-rest-nodejs-com-tdd
API REST em Node.JS aplicando testes (TDD) desde o princípio
https://github.com/tayron/udemy-api-rest-nodejs-com-tdd
Last synced: 3 months ago
JSON representation
API REST em Node.JS aplicando testes (TDD) desde o princípio
- Host: GitHub
- URL: https://github.com/tayron/udemy-api-rest-nodejs-com-tdd
- Owner: tayron
- Created: 2023-03-06T14:58:35.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-25T19:29:19.000Z (about 2 years ago)
- Last Synced: 2025-01-20T23:33:55.512Z (4 months ago)
- Language: JavaScript
- Size: 482 KB
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# API REST em Node.JS aplicando testes (TDD) desde o princípio
Link do curso: https://www.udemy.com/course/api-rest-nodejs-com-testes
## O que será estudado:
* Evoluir a aplicação com a segurança dos testes
* Desenvolver uma API Rest utilizando NodeJS
* Criar testes para API Rest utilizando o Jest
* Autenticação e geração de Token JWT
* Criar banco de dados através do knex
* Trabalhar com migração de tabelas
* Diversas estratégias de roteamento do express
* Estratégias para gerenciamento de massa de dados
* Gerenciar logs na aplicação## Instalando Eslint
```sh
npm install eslint --save-dev
```### Configurando Eslint
```sh
node_modules/.bin/eslint --init
```### Executando Eslint
```sh
node_modules/.bin/eslint inde.js
```### Executando Eslint e pedindo para corrigir
```sh
node_modules/.bin/eslint inde.js --fix
```## Instalando Jest
```sh
npm i -D [email protected] -E
```
**Obs.:** A flag -E é para garantir que a versão do jest não seja alterada no futuro## Instalando Jest
```sh
npm i -D [email protected] -E
```## Instalando Express
```sh
npm i -S -E [email protected]
```## Instalando Body Parser
```sh
npm i -S -E [email protected]
```## Instalando Consign
Carrega arquivos javascript dinamicamente
```sh
npm i -S -E [email protected]
```## Instalando knex
Query builder para banco de dados, convertendo objetos em querys
```sh
npm i -S -E [email protected]
```## Instalando moment
Biblioteca para trabalhar com operações em data, como subtrair, adicionar dias, mês, etc.
```sh
npm i -S -E [email protected]
```## Instalando husky
Biblioteca para que ao rodar o commit seja executado os testes unitários antes
```sh
npm i -S -E [email protected]
```## Instalando uuidv4 e winston
Biblioteca para logar os eventos da aplicação
```sh
npm i -S -E [email protected] [email protected]
```## Instalando PM2 - Advaced, production process manager for NodeJS
Usando a ferramenta para manter sempre o servidor em pé com nodeJS
```sh
npm i pm2 -g
pm2 start npm --start
```Visualizando processo
```sh
pm2 status
```
Restartando servidor
```sh
pm2 restart 0
```Parando processo
```sh
pm2 stop 0
```Desinstalando a ferramenta pm2
```sh
npm uninstall pm2 -g
```### Criando arquivo de migração usando knex
```sh
node_modules/.bin/knex migrate:make create_users --env test
node_modules/.bin/knex migrate:make create_table_accounts --env test
node_modules/.bin/knex migrate:make create_table_transactions --env test
node_modules/.bin/knex migrate:make create_table_transfers --env test
```### Executando migração usando knex
```sh
node_modules/.bin/knex migrate:latest --env test
```### Executando rollback usando knex
```sh
node_modules/.bin/knex migrate:rollback --env test
```### Executando criação de arquivos seed usando knex
```sh
node_modules/.bin/knex seed:make transfer --env test
node_modules/.bin/knex seed:make balance --env test
```### Executando criação de seed usando knex
```sh
node_modules/.bin/knex seed:run --env test
```## Instalando knex-logger
```sh
npm i -S -E knex-logger
```## Instalando mysql
```sh
npm i -S -E mysql
```## Instalando bcrypt para geração de hash de senha
```sh
npm i -S -E [email protected]
```## Instalando faker para geração de dados faker usando nos testes
```sh
npm i -S -E [email protected]
```## Instalando jwt para geração de token
```sh
npm i -S -E [email protected]
```## Instalando passport
```sh
npm i -S -E [email protected]
npm i -S -E [email protected]
```## Instalando dependencia para tratar cors
```sh
npm i -S -E [email protected]
```
## Versionamento de biblioteca**Exemplo: v 1.2.3**
1. major
2. ^ minor
3. ~ patch