Skip to content

Latest commit

 

History

6 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Guia Dev Brasil

Guia de Node.js

🎯 O guia para alavancar a sua carreira

Node.js é o ambiente que executa JavaScript fora do navegador: criado em 2009 sobre o motor V8 do Chrome e mantido hoje pela OpenJS Foundation, ele roda APIs, sites, ferramentas de linha de comando e o tooling de praticamente todo o ecossistema web. Este guia reúne roadmap, cursos, livros, ferramentas e comunidades para quem já sabe (ou está aprendendo) JavaScript e quer usar Node.js para construir back-ends e ferramentas, do node ola.js ao deploy em produção. Os recursos em português e gratuitos vêm primeiro em cada seção.

Siga nas redes sociais para acompanhar mais conteúdos:
Discord Badge Youtube Badge

⚠️ Aviso importante

Antes de tudo você pode me ajudar e colaborar, deu bastante trabalho fazer esse repositório e organizar para fazer seu estudo ou trabalho melhor, portanto você pode me ajudar das seguintes maneiras:

💡 Nossa proposta

A proposta deste guia é dar uma ideia sobre o atual panorama e guiá-lo se você estiver confuso sobre qual será o seu próximo aprendizado, sem influenciar você a seguir os 'hypes' e 'trends' do momento. Acreditamos que com um maior conhecimento das diferentes estruturas e soluções disponíveis poderá escolher a ferramenta que melhor se aplica às suas demandas. E lembre-se, 'hypes' e 'trends' nem sempre são as melhores opções.

🔰 Para quem está começando agora

Não se assuste com a quantidade de conteúdo apresentado neste guia. Acredito que quem está começando pode usá-lo não como um objetivo, mas como um apoio para os estudos. Neste momento, dê enfoque no que te dá produtividade e o restante marque como Ver depois. Ao passo que seu conhecimento se torna mais amplo, a tendência é este guia fazer mais sentido e ficar fácil de ser assimilado. Bons estudos e entre em contato sempre que quiser! 👊

🚨 Colabore

  • Abra Pull Requests com atualizações
  • Discuta ideias em Issues
  • Compartilhe o repositório com a sua comunidade

🌍 Tradução

Se você deseja acompanhar esse repositório em outro idioma que não seja o Português Brasileiro, você pode optar pelas escolhas de idiomas abaixo, você também pode colaborar com a tradução para outros idiomas e a correções de possíveis erros ortográficos, a comunidade agradece.

Guia Extenso de ProgramaçãoEnglish — Click Here
Guia Extenso de ProgramaçãoSpanish — Click Here
Guia Extenso de ProgramaçãoChinese — Click Here
Guia Extenso de ProgramaçãoHindi — Click Here
Guia Extenso de ProgramaçãoArabic — Click Here
Guia Extenso de ProgramaçãoFrench — Click Here
Guia Extenso de ProgramaçãoItalian — Click Here
Guia Extenso de ProgramaçãoKorean — Click Here
Guia Extenso de ProgramaçãoRussian — Click Here
Guia Extenso de ProgramaçãoGerman — Click Here
Guia Extenso de ProgramaçãoJapanese — Click Here

📚 ÍNDICE

🎯 Sobre este guia

Node.js é o ambiente que executa JavaScript fora do navegador: criado em 2009 sobre o motor V8 do Chrome e mantido hoje pela OpenJS Foundation, ele roda APIs, sites, ferramentas de linha de comando, bots e o tooling de praticamente todo o ecossistema web (npm, bundlers, frameworks). Seu modelo assíncrono e orientado a eventos permite atender muitas conexões ao mesmo tempo com poucos recursos — por isso é a tecnologia de back-end mais pedida nas vagas de JavaScript no Brasil.

O Node.js de 2026 é bem diferente do de alguns anos atrás: a versão 24 é a LTS ativa (a 22 está em manutenção, a 20 chegou ao fim da vida em abril e a 26 vira LTS em outubro), e coisas que antes exigiam bibliotecas agora vêm de fábrica — fetch, node --test, node --watch, --env-file, node:sqlite, execução nativa de TypeScript (type stripping) e o modelo de permissões (--permission).

Este guia é para quem já sabe (ou está aprendendo) JavaScript e quer usar Node.js para construir back-ends e ferramentas, do node ola.js ao deploy. Os recursos em português e gratuitos vêm primeiro em cada seção; quando um recurso é pago ou está em inglês, isso é indicado no texto da descrição. Todo link foi verificado na data da última revisão.

🗺️ Roadmap

Trilha resumida (siga na ordem; cada etapa tem recursos nas seções abaixo):

  1. JavaScript moderno (ES6+)let/const, arrow functions, destructuring, módulos ES, Promise/async-await. Sem isso, Node.js vai parecer só "erro de callback".
  2. Fundamentos do runtime — instalar a versão LTS, node/npm/npx, package.json, módulos CommonJS × ESM, o event loop e por que I/O é assíncrono.
  3. Módulos nativosfs, path, http, events, stream, child_process, process, fetch, node:test.
  4. APIs HTTP — REST com Express ou Fastify: rotas, middlewares, validação (Zod), tratamento de erros, autenticação (JWT).
  5. Dados — PostgreSQL ou MongoDB com um ORM/ODM (Prisma, Drizzle, Mongoose), migrations, variáveis de ambiente.
  6. Qualidade — testes (node --test, Vitest ou Jest), ESLint/Biome, TypeScript, logs estruturados (Pino), debugging com --inspect.
  7. Produção — Docker, PM2 ou containers, deploy (Render, Railway, Fly.io), segurança (Helmet, npm audit, Permission Model), monitoramento.
  8. Avançado — streams e backpressure, workers e cluster, filas (BullMQ), WebSockets, arquitetura (Clean Architecture, NestJS), performance (Clinic.js, autocannon), contribuir com o core.

🚀 Por onde começar

  1. Domine o JavaScript primeiro. Use o Guia de JavaScript da MDN (PT-BR) ou o Curso de JavaScript 2024 do Matheus Battisti — Node.js é JavaScript por baixo.
  2. Instale a versão LTS pela página oficial de download (ou com nvm/fnm para trocar de versão) e o Visual Studio Code.
  3. Entenda o que é o Node lendo a introdução oficial (em inglês) e o artigo da Alura sobre o loop de eventos (PT-BR).
  4. Faça um curso rápido: Felipe Rocha (aula única) ou o Curso de Node.js 2025 da Stack Mobile.
  5. Aprofunde com um curso completo: Node.js do Matheus Battisti ou, se já quiser TypeScript, Do zero a produção (Waldemar Neto).
  6. Construa sua primeira API seguindo o tutorial de Express da MDN em português e teste-a com Bruno ou Hoppscotch.
  7. Escreva testes desde cedo com o test runner nativo — sem instalar nada.
  8. Publique um projeto no GitHub e no ar (Render ou Railway); depois encare um desafio do backend-br ou a Rinha de Backend.

Seu primeiro servidor em 30 segundos (sem instalar nenhum pacote):

mkdir ola-node && cd ola-node
npm init -y
// servidor.js
import { createServer } from "node:http";

createServer((req, res) => {
  res.setHeader("Content-Type", "application/json; charset=utf-8");
  res.end(JSON.stringify({ mensagem: "Olá, Guia Dev Brasil!" }));
}).listen(3000, () => console.log("http://localhost:3000"));
node --watch servidor.js        # reinicia sozinho quando o arquivo muda
// servidor.test.js
import { test } from "node:test";
import assert from "node:assert/strict";

test("responde com JSON", async () => {
  const res = await fetch("http://localhost:3000");
  assert.equal((await res.json()).mensagem, "Olá, Guia Dev Brasil!");
});
node --test                     # test runner nativo (com o servidor rodando)
node servidor.ts                # Node.js 22.18+/24 executa TypeScript direto (type stripping)
node --permission --allow-fs-read=. servidor.js   # modelo de permissões

Dica: para usar import como acima, coloque "type": "module" no package.json ou salve os arquivos como .mjs.

📖 Documentação oficial

🔤 Sites e cursos para aprender Node.js

Cursos para aprender Node.js em Português

Cursos para aprender Node.js em Inglês

📚 Livros

🎥 Canais no Youtube

Em português

  • Erick Wendel — Membro do core do Node.js: internals, performance, streams e novidades da plataforma.
  • Rocketseat — Node, React e TypeScript, com eventos gratuitos frequentes (NLW) e projetos completos.
  • Matheus Battisti — Hora de Codar — Cursos completos gratuitos de Node, JavaScript, TypeScript e ferramentas de IA.
  • Filipe Deschamps — Fundamentos e carreira, com o TabNews (Node.js) desenvolvido em público.
  • Lucas Souza Dev — Projetos completos de API e front-end, sempre com Node e TypeScript.
  • Victor Lima — Guia do Programador — Canal de cursos gratuitos de Node.js e ciência da computação.
  • balta.io — Back-end, arquitetura e carreira, com cursos gratuitos de APIs em Node.
  • Full Cycle — Arquitetura, microsserviços, Docker e lives de código com Node.js.
  • Rodrigo Branas — Clean Code, Clean Architecture e TDD com exemplos em Node/TypeScript.
  • Fernanda Kipper — Back-end, APIs e carreira, com projetos práticos e desafios.
  • Fabio Akita — Aulas longas sobre como as coisas funcionam por baixo — runtime, sistema operacional, história.
  • Código Fonte TV — Explicações curtas de tecnologias e notícias, incluindo Node, Bun e Deno.
  • Sujeito Programador — Projetos full stack com Node.js, React e React Native.
  • LuizTools — Node.js, blockchain e carreira, com cursos e dicas práticas.
  • Otávio Miranda — Cursos longos e detalhados de JavaScript, TypeScript e Node.
  • Mario Souto — Dev Soutinho — Front-end e full stack com JavaScript, foco em carreira e projetos reais.
  • Lucas Montano — Carreira, entrevistas e projetos em público.
  • CFBCursos — Cursos gratuitos e completos de Node, JavaScript e bancos de dados.

Em inglês

  • Node.js (canal oficial) — Palestras de conferências, reuniões técnicas e anúncios do projeto.
  • OpenJS Foundation — Fundação que abriga o Node.js: talks do OpenJS World e dos projetos irmãos.
  • Traversy Media — Crash courses de Node, Express e stacks completas.
  • freeCodeCamp.org — Cursos completos e gratuitos de várias horas sobre Node e back-end.
  • Fireship — Vídeos de 100 segundos e comparativos (Node vs Bun vs Deno).
  • Codevolution — Tutoriais sistemáticos de Node e frameworks.
  • Net Ninja — Séries curtas e bem editadas de Node, Express e MongoDB.
  • Dave Gray — Cursos longos e completos de Node e JavaScript.
  • Programming with Mosh — Introduções claras a Node, Express e MongoDB.
  • Web Dev Simplified — Conceitos de JavaScript e Node explicados de forma simples.
  • Hussein Nasser — Engenharia de back-end profunda: HTTP, TCP, bancos e como o Node lida com conexões.

🎙️ Podcasts

📰 Sites, blogs e newsletters

🛠️ Ferramentas

Runtime, versões e pacotes

  • nvm — Gerenciador de versões do Node para macOS/Linux: troque de versão com nvm use.
  • nvm-windows — O gerenciador de versões equivalente para Windows.
  • fnm — Gerenciador de versões rápido, escrito em Rust, multiplataforma.
  • Volta — Fixa a versão de Node e npm por projeto automaticamente.
  • pnpm (docs em português) — Gerenciador de pacotes rápido e econômico em disco, padrão em monorepos.
  • Yarn — Gerenciador de pacotes alternativo, com workspaces e plug'n'play.
  • Corepack — Gerencia a versão do pnpm/Yarn declarada no package.json (packageManager).
  • tsx — Execute TypeScript com enum/namespace e sem configuração quando o type stripping nativo não basta.
  • TypeScript — Tipos estáticos para o Node; hoje o padrão em projetos profissionais.
  • Bun — Runtime alternativo ultrarrápido, compatível com a maior parte das APIs do Node.
  • Deno — Runtime seguro por padrão, com TypeScript nativo e compatibilidade com npm.
  • Imagem oficial do Node no Docker Hub — Tags node:24-alpine, node:22-slim etc. para containerizar sua aplicação.
  • nodejs/docker-node — boas práticas — Repositório da imagem oficial, com guia de boas práticas para Dockerfile em Node.

Frameworks, bancos de dados e bibliotecas

  • Express — O framework web mais usado do Node; minimalista e com documentação em português.
  • Fastify — Framework rápido e extensível, mantido por membros do core do Node.
  • NestJS — Framework opinativo em TypeScript (módulos, injeção de dependência), muito comum em empresas.
  • Hono — Framework pequeno baseado em Web Standards; roda em Node, Bun, Deno e edge.
  • Koa — Framework minimalista dos criadores do Express, baseado em async/await.
  • AdonisJS — Framework full stack "com pilhas incluídas" em TypeScript (ORM, auth, validação).
  • hapi — Framework focado em configuração e segurança, usado em grandes empresas.
  • Socket.IO — Comunicação em tempo real (WebSocket com fallback) entre servidor Node e clientes.
  • Prisma — ORM com cliente totalmente tipado gerado a partir do schema; ótimo para começar.
  • Drizzle ORM — ORM leve, TypeScript-first, com sintaxe próxima do SQL.
  • TypeORM — ORM baseado em decorators, comum em projetos NestJS.
  • Sequelize — ORM veterano para bancos relacionais (PostgreSQL, MySQL, SQLite…).
  • Knex.js — Query builder SQL com migrations, para quem prefere escrever SQL.
  • Mongoose — ODM para MongoDB com schemas e validação.
  • Zod — Validação de dados com inferência de tipos — valide body, query e variáveis de ambiente.
  • Undici — O cliente HTTP oficial do Node que implementa o fetch global.
  • BullMQ — Filas e jobs em background com Redis.
  • Nodemailer — Envio de e-mails a partir do Node, com SMTP e provedores.
  • Passport.js — Autenticação com centenas de estratégias (local, OAuth, JWT).
  • jsonwebtoken — Geração e verificação de JWT, a biblioteca mais usada para tokens.
  • Helmet — Cabeçalhos HTTP de segurança para apps Express em uma linha.
  • Multer — Upload de arquivos (multipart/form-data) no Express.
  • dotenv — Carrega .env em process.env (o Node moderno também faz isso com --env-file).
  • Commander.js — Crie ferramentas de linha de comando em Node com parsing de argumentos.
  • Puppeteer — Controle o Chrome a partir do Node para scraping, PDFs e automação.
  • Playwright — Automação e testes end-to-end de navegador, da Microsoft.
  • json-server — API REST fake em 30 segundos a partir de um JSON — ótimo para prototipar front-ends.

Testes, qualidade e operação

  • Vitest — Framework de testes rápido, compatível com a API do Jest e com TypeScript nativo.
  • Jest (docs em português) — O framework de testes mais difundido, com documentação traduzida.
  • SuperTest — Testes de integração de servidores HTTP com API fluente.
  • ESLint — Linter padrão do ecossistema; pega erros antes de rodar.
  • Prettier — Formatador de código opinativo — acaba com discussões de estilo.
  • Biome — Linter + formatador em uma ferramenta só, muito mais rápido que ESLint + Prettier.
  • nodemon — Reinicia o app quando arquivos mudam (o Node moderno tem --watch nativo).
  • PM2 — Gerenciador de processos para produção: cluster, restart automático e logs.
  • Pino — Logger JSON de altíssima performance, padrão no Fastify.
  • winston — Logger flexível com múltiplos transportes (arquivo, console, serviços).
  • Clinic.js — Ferramentas de diagnóstico de performance (Doctor, Flame, Bubbleprof).
  • autocannon — Teste de carga HTTP escrito em Node.
  • Bruno — Cliente de API open source que salva coleções em arquivos versionáveis no Git.
  • Hoppscotch — Cliente de API open source direto no navegador.
  • Insomnia — Cliente de API para REST, GraphQL e gRPC.
  • Swagger / OpenAPI — Documente e teste sua API com a especificação OpenAPI.
  • Snyk — Verifica vulnerabilidades nas dependências do seu package.json.
  • Node.js Security Working Group — Grupo oficial de segurança do ecossistema: avisos, processos e boas práticas.
  • Render — Hospedagem com plano gratuito para publicar sua API Node em minutos.
  • Railway — Deploy simples de apps Node com banco de dados incluído.
  • Fly.io — Rode containers Node perto dos usuários, inclusive em São Paulo.
  • Vercel — Funções serverless em Node e hospedagem de apps full stack.
  • npm trends — Compare downloads de pacotes antes de escolher uma dependência.
  • Bundlephobia — Veja o tamanho e as dependências de um pacote npm antes de instalar.

🧪 Projetos práticos e desafios

  • Rinha de Backend 2025 — O desafio brasileiro de back-end sob carga; centenas de submissões em Node para estudar.
  • Rinha de Backend 2024/Q1 — Segunda edição: controle de concorrência e limites de CPU/memória.
  • Rinha de Backend 2023/Q3 — A edição original: API sob stress test com recursos limitados.
  • backend-br/desafios — Coleção brasileira de desafios de back-end para praticar e montar portfólio.
  • Backend Projects (roadmap.sh) — Projetos progressivos em inglês com requisitos claros, do CLI a APIs com autenticação.
  • Task Tracker CLI (roadmap.sh) — Primeiro projeto ideal: uma CLI de tarefas usando só fs e process.argv.
  • learnyounode (NodeSchool) — Workshop autoguiado no terminal, em inglês, com 13 exercícios de Node puro.
  • NodeSchool — Coleção de workshops interativos de Node e JavaScript, em inglês.
  • nodejs/examples — Exemplos executáveis mantidos pelo projeto Node.js, além do "hello world".
  • Build your own X — Recrie tecnologias do zero (servidor HTTP, Redis, shell) — vários tutoriais em Node.
  • CodeCrafters — Desafios guiados e pagos para construir Redis, HTTP server, Git etc. em JavaScript; parte gratuita.
  • Coding Challenges (John Crickett) — Desafios semanais em inglês para reconstruir ferramentas reais (wc, JSON parser, load balancer).
  • App Ideas — Ideias de aplicações por nível de dificuldade para praticar.
  • Project-based learning — Lista de tutoriais baseados em projetos, com seção dedicada a Node.js.
  • RealWorld — O "clone do Medium" com dezenas de implementações de back-end em Node para comparar.
  • Codewars — Katas de JavaScript para manter a lógica afiada.

🤖 IA na prática

Node.js e assistentes de IA combinam por dois motivos: o ecossistema é gigantesco (a IA conhece Express, Prisma e node:test de cor) e o runtime dá feedback imediato — você roda o código, o teste ou o npm audit e descobre em segundos se a sugestão estava certa. Use isso a seu favor.

Para aprender

  • Cole um erro real (ex.: Error [ERR_REQUIRE_ESM], UnhandledPromiseRejection, EADDRINUSE) junto com o trecho de código e peça: "explique a causa, mostre a correção e diga como evitar de novo".
  • Peça para explicar o event loop com um exemplo executável usando setTimeout, setImmediate e process.nextTick, rode com node e confira se a ordem impressa bate com a explicação.
  • Peça um projeto guiado em etapas ("API de tarefas com Express, validação com Zod e testes com node:test") e implemente cada etapa antes de pedir a próxima.
  • Peça para converter um código com callbacks para async/await e depois para explicar o que mudou no tratamento de erros.
  • Peça exercícios com gabarito sobre o módulo que está estudando (fs, stream, http, events).

Para trabalhar

  • Use GitHub Copilot, Cursor ou Claude Code para: escrever testes de integração com SuperTest, gerar um Dockerfile multi-stage, migrar CommonJS → ESM, atualizar uma API do Express 4 para o 5, ou documentar rotas em OpenAPI.
  • Depois de cada sugestão aceita, rode node --test (ou Vitest), o linter e npm audit. Se a IA sugerir instalar um pacote, confira no npm trends se ele existe, é mantido e tem downloads — pacotes inventados por IA são um vetor real de ataque (slopsquatting).
  • Prefira os recursos nativos que a IA às vezes não conhece por serem recentes: fetch no lugar de axios, node --test no lugar de Jest, --env-file no lugar de dotenv, --watch no lugar de nodemon.

Limites e boas práticas

  • IA mistura versões: pode sugerir require() em projeto ESM, APIs removidas ou flags experimentais como se fossem estáveis. Confirme na documentação da API da sua versão.
  • Ela tende a ignorar await esquecido, vazamento de listeners, backpressure em streams e process.exit() no meio do código. Leia o que aceita.
  • Não cole segredos (.env, tokens, strings de conexão), dados de clientes ou código proprietário em ferramentas sem a política da sua empresa.
  • Em entrevista e em produção, o código é seu: entenda cada linha.

Node.js é o runtime da IA aplicada. Os SDKs, frameworks de agentes e o Model Context Protocol têm implementações oficiais em JavaScript/TypeScript que rodam em Node — aprender Node abre a porta para construir produtos com LLMs:

🎓 Certificações

As certificações oficiais da OpenJS Foundation (JSNAD e JSNSD) foram descontinuadas — as páginas oficiais na Linux Foundation as marcam como inativas. Hoje não existe certificação oficial de Node.js; empregadores avaliam projetos publicados e domínio prático. Os certificados abaixo são de conclusão de curso: ajudam no currículo, mas não substituem portfólio.

💼 Carreira e vagas

Node.js aparece como requisito na maior parte das vagas de back-end JavaScript e full stack no Brasil, quase sempre acompanhado de TypeScript, um framework (Express, NestJS ou Fastify), um banco (PostgreSQL ou MongoDB) e Docker. Dica: nos repositórios de vagas do GitHub abaixo, pesquise por "Node" nas issues abertas.

👥 Comunidades

📄 Licença

Este projeto está sob a licença MIT. Feito com 💙 por Arthur Coutinho (@arthurspk) e pela comunidade do Guia Dev Brasil.

💙 Apoie o projeto

Dê uma ⭐ neste repositório e no guia principal, compartilhe com quem está começando e siga o projeto nas redes:

GitHub LinkedIn X (Twitter) Instagram Facebook

About

Guia de Node.js: trilhas, cursos, livros, canais, ferramentas e comunidades para você entrar e evoluir na área.

Topics

Resources

Code of conduct

Contributing

Stars

44 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors