Guia de 21 dias

Back-end com Node.js em 21 dias

Se você já sabe JavaScript, é o caminho mais curto pra criar tua primeira API. Dev que entende back-end resolve problema que o time inteiro sente.

Para quem já sabe o básico de JavaScript. Um dia por vez, na ordem. Cada dia tem uma tarefa e um vídeo.

Back-end com Node.js em 21 dias

O método

  • Digita, não copia.
  • Derruba o servidor de propósito pra ler o stack trace.
  • 40 minutos por dia e para.

Constância vence intensidade. Se perder um dia, continue de onde parou. Não tente compensar fazendo dois.

Semana 1 · dias 1 a 7

Node no terminal

Instalar, rodar script, import/export, npm, fs, path e process.env.

Primeiro o Node, depois o framework.

Dia01

Instalar o Node

Instale a versão LTS do Node e rode node -v e npm -v no terminal. Abra o REPL com node e faça umas contas e um console.log.

O QUE É ESSE TAL DE NODE JS, E COMO INSTALAR O NODE NO WINDOWS. - PROGRAMADOR BR - EP 93 (Programador BR)
Assistir ↗

Dia02

Rodar um script

Crie um arquivo index.js que imprime teu nome e a data atual e rode com node index.js. Escreva um erro de propósito e leia o stack trace até achar a linha.

Como Rodar JavaScript Localmente com Node.js. (Manual do Código)
Assistir ↗

Dia03

import e export

Separe funções de cálculo em um arquivo math.js e importe no index.js. Faça uma versão com require e outra com import, usando "type": "module" no package.json.

Node js Aula 04 : Módulos com ES6 Import, Export e Package json (Edu Pretel Desenvolvimento | Cursos de TI)
Assistir ↗

Dia04

npm e package.json

Rode npm init -y, instale um pacote (por exemplo dayjs) e use no teu script. Crie um script start no package.json e rode com npm start.

AULÃO: APRENDA A GERENCIAR SEU PROJETO NODE COM O PACKAGE.JSON (Código Fonte TV)
Assistir ↗

Dia05

Ler e escrever arquivos (fs)

Escreva um script que lê um arquivo notas.txt, conta as linhas e grava o resultado em resumo.txt. Use a versão com promises de fs.

Módulo FS para manipular arquivos em Node #P1 [NodeJS] - Curso de Node - Aula 05 (CFBCursos)
Assistir ↗

Dia06

Caminhos com path

Liste os arquivos de uma pasta com fs.readdir e monte os caminhos com path.join. Rode o script a partir de outra pasta e veja o que muda.

Como listar arquivos com fs e path - [Node.js] (Uelsson _)
Assistir ↗

Dia07

process.env

Leia uma variável PORT e um NOME de process.env, com valor padrão se não existir. Crie um arquivo .env e carregue com node --env-file=.env.

Node.js: Trabalhando com Variáveis de Ambiente Nativas | Tutorial Prático | Erick Wendel (Erick Wendel)
Assistir ↗

Semana 2 · dias 8 a 14

Subindo teu servidor

Event loop e async, servidor http, Express, rotas, JSON e middlewares.

O pedido chega, passa pelos middlewares e a rota responde. Aqui você vira dev back-end.

Dia08

Event loop

Escreva um script com console.log, setTimeout e Promise.resolve misturados. Antes de rodar, anote a ordem que você acha que vai sair e compare.

Explicando o JavaScript por baixo dos panos (event loop, call stack, event queue) (Mayk Brito)
Assistir ↗

Dia09

async e await

Reescreva o script do dia 5 usando async/await com try/catch. Tente ler um arquivo que não existe e leia o erro inteiro.

Tudo sobre Async e Await - Funções assíncronas em JavaScript (Matheus Battisti - Hora de Codar)
Assistir ↗

Dia10

Servidor http

Suba um servidor com o módulo http que responde texto em / e 404 nas outras rotas. Teste no navegador e com curl.

NodeJS Primeiros Passos: Servidor HTTP Básico (DevPleno)
Assistir ↗

Dia11

Express

Instale o Express e refaça o servidor de ontem com ele. Compare quantas linhas cada versão precisou.

Como Criar uma API REST com Node.js e Express em 16 Minutos! (Hashtag Programação)
Assistir ↗

Dia12

Rotas e parâmetros

Crie GET /tarefas e GET /tarefas/:id usando um array em memória. Aceite um filtro por query string, tipo ?feita=true.

Dominando Rotas no Express: Query Params e Route Params - Aula 2.3 (Dev Samurai - Todos os cursos)
Assistir ↗

Dia13

JSON e métodos HTTP

Adicione POST, PUT e DELETE em /tarefas usando express.json(). Teste cada rota com curl ou Insomnia e confira os status codes.

O que é uma API REST? Entenda tudo sobre API, HTTP e RESTful, (Matheus Battisti - Hora de Codar)
Assistir ↗

Dia14

Middlewares

Escreva um middleware que loga método, rota e tempo de resposta de cada requisição. Crie outro que bloqueia rotas sem um header x-api-key.

Dicas: NodeJS/Express: Middlewares (para que serve app.use?) (DevPleno)
Assistir ↗

Semana 3 · dias 15 a 21

Tua API no ar

Banco (SQLite ou Postgres), validação, tratamento de erro, deploy e um projeto final: API REST completa.

API no ar, com link, é o melhor currículo de back-end.

Dia15

Banco SQLite

Crie um banco SQLite com uma tabela tarefas e insira algumas linhas pelo Node. Faça um SELECT e imprima o resultado no terminal.

Node.js com sqlite, agora já vem de forma nativa (Victor Almeida de Freitas)
Assistir ↗

Dia16

CRUD no banco

Troque o array em memória da tua API pelo banco. Cada rota de /tarefas agora faz uma query de verdade.

Aulão de WebAPI Node.js com Postgre SQL (LuizTools)
Assistir ↗

Dia17

Validação

Valide o body do POST e do PUT com Zod. Mande dados errados de propósito e devolva 400 com uma mensagem clara.

Criando validações com Zod em uma requisição HTTP (Rocketseat)
Assistir ↗

Dia18

Tratamento de erro

Crie um middleware de erro que centraliza as respostas e devolve 404 e 500 em JSON. Derrube uma rota com throw e confira que o servidor continua de pé.

Tratamento de erros no express em rotas com async/await (Otávio Miranda)
Assistir ↗

Dia19

Deploy

Suba o código no GitHub e faça deploy da API em um serviço gratuito como Render ou Railway. Configure as variáveis de ambiente lá e teste a URL pública.

A melhor opção p/ DEPLOY Node.js GRATUITO! (Rocketseat)
Assistir ↗

Dia20

Projeto final: estrutura

Escolha o tema da tua API e escreva as rotas e a tabela no papel antes de codar. Monte o projeto do zero, sem copiar das aulas anteriores.

Criando uma API do ZERO com Node.js e Banco de Dados (DevClub | Programação)
Assistir ↗

Dia21

Projeto final: API no ar

Termine o CRUD com validação e tratamento de erro e faça o deploy. Escreva um README com as rotas e um exemplo de curl para cada uma.

Crie e Faça Deploy de uma API COMPLETA com Node, TypeScript & MongoDB (Felipe Rocha • Full Stack Club)
Assistir ↗

Projeto final

Publica no GitHub

Construa uma API REST completa para um tema que você escolher, como tarefas, livros ou gastos. Ela precisa ter CRUD com banco SQLite ou Postgres, validação dos dados de entrada, tratamento de erro centralizado e deploy com URL pública. Escreva tudo do zero e documente as rotas no README.

Coloca um README dizendo o que o projeto faz e como rodar. É a primeira coisa que o recrutador abre.