2.1.1 O que faz o Mongoose
Lembra que, nas APIs passadas, usávamos arquivos JSON na pasta Models?
Se fosse uma API de filmes, todos os filmes precisariam estar lá, expostos. O mesmo para as APIs de séries, jogos e pessoas. Será que ter informações de pessoas expostas para qualquer usuário que veja a API é a melhor coisa a se fazer? Não, né?
Para isso, usamos os bancos de dados.
Vem comigo: integrar uma API de pessoas com o banco de dados é substituir o antigo arquivo JSON (que ficava em models) por um arquivo .js que não tem nenhuma informação pessoal. Este arquivo .js apenas "se comunica" com um banco de dados escondido e joga os dados lá.
O que teremos em models, agora, será um arquivo apenas com os tipos de informações sobre as pessoas. Observe abaixo o JSON no lado esquerdo e o .js no lado direito:
Chamamos este arquivo .js de Schema, que quer dizer esboço.
Não se adiciona mais os dados integrais na API, e sim o esboço dos dados para futuras inserções.
Para qualquer API que fizermos usando o node.js, de acordo com tudo o que já foi visto, precisamos:
1. do gerenciador de pacotes NPM: Digite
npm init
2. do framework Express, para criar o servidor: Digite
npm install express
3. do pacote Nodemon para facilitar seu trabalho: Digite
npm install nodemon
4. do aplicativo Postman para visualizar os resultados: Clique aqui.
Precisaremos de uma nova ferramenta, o
5. módulo Mongoose. Digite:
npm install mongoose
Em resumo, o mongoose é uma ferramenta que:
- Cria esta nova funcionalidade, o schema;
- Controla os tipos de dados que podem entrar em cada chave-valor a sua API (number, string, boolean...);
- Cria uma collection no banco de dados. A collection, sim, é nosso antigo arquivo JSON real com as informações. A diferença é que, aqui, ele é criado direto no banco de dados.
Um software vai ajudar a visualizar o banco de dados de forma mais amigável,
6. o Robo 3T: Baixe o software clicando aqui e instale. Depois, conecte o Robo 3T em todos os bancos de dados que estão no seu pc seguindo estes passos.
Assim que o Robo 3T parece:
✔️ 1 - Instale a dependência do mongoose no projeto;
✔️ 2 - Crie a string de conexão com o mongo no seu app.js
. O nome do banco de dados será clientes.
✔️ 3 - Crie a conexão e valide se realmente o banco está logado exibindo uma mensagem de sucesso no console.
✔️ 4 - Crie o Schema com as seguintes informações:
nome (String)
email: (String)
cpf: (Number)
dataNascimento: (String)
estadoCivil: (String)
telefone: (Number)
comprou: (Boolean)
✔️ 5 - Crie uma coleção no Postman com suas requisições.
✔️ 6 - Crie a rota para incluir um novo cliente (HTTP 201 OK).
✔️ 7 - Crie a rota para retornar todos os clientes (HTTP 200 OK)
8 - Crie a rota para retornar a lista com os clientes (e e-mails) que já realizaram alguma compra (HTTP 200 OK).
9 - Crie a rota para retornar a lista de clientes de acordo com o elemento informado como parâmetro (HTTP 200 OK).