Please enable JavaScript.
Coggle requires JavaScript to display documents.
Módulo 01 (Node.js (Utilizar JavaScript no backend (Backend (Integração…
Módulo 01
Node.js
Utilizar JavaScript no backend
Backend
O que o usuário não enxerga
Camada de regra de negócio
Acesso à banco de dados
Integração com serviços de terceiros
Plataformas de pagamento
Sistemas bancários
Sistema de nota fiscal
Não lida com eventos do usuário final
"Ouve" eventos do usuário
através de rotas
Rotas
Endereços da aplicação
Permite executar JavaScript
também no frontend
Lidar com eventos
Não é uma linguagem
É uma plataforma
Construído em cima da V8
Engine Google Chrome
NPM
Gerenciador de Pacotes
Permite que instalemos
bibliotecas de terceiros
Possibilitam que
forneçamos bibliotecas
Yarn
Mais rápido
Arquitetura Event-Loop
Baseada em eventos
Call stack
Pilha de eventos
Eventos são funções
Loop eterno
Monitora a Call stack e executa as funções
Single-thread
Utiliza bibliotecas
de C++ (libuv)
Permite utilizar multi-threads
Non-blocking I/O
Aplicações em tempo real
Chamadas do frontend mantém conexão aberta
Exemplo: chats
Websocket
Frameworks
Sem opinião
Liberdade para o programador
definir a estrutura
ExpressJS
Microframework
Microserviços
Opinativo
Estrutura fechada
AdonisJS
NestJS
API REST
Requisição feita por cliente
Browser acessando URL (via AJAX)
Retorna resposta em json
Frontend recebe resposta e processa resultado
Métodos HTTP
GET
Buscar informação
http://api.com/users
POST
Criar informação
http://api.com/users
PUT
Alterar informação
http://api.com/users/1
DELETE
Deletar informação
http://api.com/users/1
Benefícios
Múltiplos frontend, mesmo backend
Comunicação padronizada
Conteúdo da requisição
Query params
http://api.com/company/1/users/?page=2
Route params
http://api.com/users/1
Body (Apenas POST/PUT)
Não fica visível na URL
Headers
Informações adicionais que não
tem a ver com o conteúdo da requisição
HTTP Codes
2xx
Sucesso
200: SUCCESS
201: CREATED
3xx
Redirecionamento
301: MOVED PERMANENTLY
302: MOVED
1xx
Informativo
4xx
Erros do cliente
400: BAD REQUEST
401: UNAUTHORIZED
404: NOT FOUND
5xx
Erros do servidor
500: INTERNAL SERVER ERROR