- O que é framework
- O que é JavaScript
- O que é NPM (Node Package Manager)
- O que é node.js
- O que é o Express
- Protocolo http (Request e Response)
- Métodos http (GET, POST, PUT, PATCH, DELETE)
- Como mudar o formato de importação/exportação de require para import (Adicionar no package.json a propriedade type: "module")
- --watch (parametro para rodar um js em modo dev, que permite rodar novamente o script quando algum arquivo é alterado)
- Router (Para que separar as rotas?)
- Parâmetros de rota. Exemplo: /:id
- O que é Padrão de Projeto
- Sigla MVC
- Para que serve o Padrão de Projeto MVC?
- Qual a responsabilidade das camadas de Modelo, Visão e Controle?
- O que é um ORM
- Prisma ORM
- Padrão de Projeto Middleware
----- Revisão para Avaliação 2: 09/12
-
Autenticação e Login de Usuários
- Como salvar a senha do usuário no BD de forma segura? Salvar como hash (Bcrypt)
- Autenticação (Login), o que verificar e fazer no login?
- JWT?
- Qual o significado de JWT?
- Quais as vantagens do JWT?
- Payload já disponível no token (backend não precisa consultar o BD)
- Assinado pelo Segredo do Backend
- Amplamente conhecido e com bibliotecas disponíveis.
- Como é enviado o Token para o backend?
- Por meio do Header Authorization da requisição http
-
Validação de Dados (Regras de Negócio) com Zod
- Para que serve o Zod?
- Para que serve o partial do Zod?
-
ErroHandler (Middleware para tratamento de erros da api)
- Para que serve o error handler?
-> Capturar erros do backend
-> Evitar que o servidor pare (quebre) com erros de exceções
-> Facilitar a manutenção relativa ao tratamento de erros
-> Mostrar erros no console para o desenvolvedor
-> Responder mensagens de erro amigáveis para o usuário (Response)
Sintaxe básica de uma rota no express
Sintaxe básica de uma rota da API. Exemplo:
app.post('/produto', (req, res) => {
res.json({message: 'Criado com sucesso!'})
})
- método: post (criar ou inserir)
- Rota ou endereço: /produto
- tipo de resposta: json
Comandos NPM (Node Package Manager)
- npm init // Cria o package.json para iniciar um projeto node
- npm i nome_pacote // instala um pacote específico
- npm install // instala todos os pacotes do package.json
ou
npm i // instala todos os pacotes do package.json
- npm run nome_do_script // executa um script do package json (apenas o script "start" pode ignorar o comando run)
// configura usuário e email do git na máquina
-
git config --global user.name "Renan Cavichi"
-
git config --global user.email "renancavichi@gmail.com"
-
git init // inicia o git em uma pasta
-
git remote add origin url_do_github // vincula meu projeto local ao repositório do github.
-
Intalação do Prisma
- npm i prisma -D
- npm i @prima/client
-
Inicializar o Prisma em um novo Projeto
-
npx prisma init
-
Gerar ou atualizar o model do prisma a partir de um BD existente
-
Gerar ou atualizar o BD a partir de um model do prisma
-
Gerar os arquivo necessários para usar o prisma client no código.