Destino Dev

Cursos

NestJS Intermediário: Banco de Dados, Autenticação e Testes

Código do curso: github.com/johnpires/nestjs-intermediario-projeto-final

NestJS é um framework Node.js progressivo que se destaca pela sua arquitetura modular e fortemente tipada com TypeScript. Após dominar os fundamentos, o próximo passo é aprender a construir aplicações reais: persistindo dados com Prisma ORM, protegendo rotas com autenticação JWT e garantindo a qualidade do código com testes automatizados.

Neste curso intermediário, você evoluirá de APIs simples para sistemas completos e seguros. Aprenderá a integrar o Prisma ORM para acesso ao banco de dados PostgreSQL, modelar relacionamentos complexos, implementar autenticação e autorização com JWT e Passport, além de dominar recursos avançados do NestJS como Interceptors, Guards customizados, Pipes de transformação e ConfigModule.

Ao concluir este curso, você terá construído uma API de blog completa com autenticação JWT, controle de acesso por roles, relacionamentos entre entidades e cobertura de testes. Estará preparado para trabalhar em projetos profissionais com NestJS e para avançar para tópicos como microsserviços, filas de mensagens e deploy em produção.

O que você vai aprender

Ao final deste curso, você será capaz de:

Pré-requisitos

É necessário ter concluído um curso básico de NestJS ou ter experiência equivalente: saber criar controllers, services e módulos, conhecer DTOs com class-validator, e ter familiaridade com TypeScript. Conhecimento básico de SQL e bancos de dados relacionais é recomendado. Node.js 18+ e npm devem estar instalados.

Conteúdo do curso

Módulo 1: Integração com Banco de Dados usando Prisma

  1. Introdução ao Prisma ORM no NestJS (25 min)
  2. Criando o Schema Prisma e Migrações (28 min)
  3. CRUD Completo com Prisma e NestJS (30 min)
  4. Filtros, Paginação e Ordenação (32 min)

Módulo 2: Relacionamentos com Prisma

  1. Relacionamentos One-to-Many no Prisma (28 min)
  2. Relacionamentos Many-to-Many (26 min)
  3. Queries Avançadas: include, select e nested writes (29 min)
  4. Transações no Prisma (31 min)

Módulo 3: Autenticação com JWT

  1. Fundamentos de Autenticação e Hash de Senhas (27 min)
  2. Implementando Registro e Login (30 min)
  3. Gerando e Validando JWT com @nestjs/jwt (32 min)
  4. Refresh Tokens e Segurança Avançada (33 min)

Módulo 4: Guards e Autorização

  1. Criando o JwtAuthGuard com Passport (26 min)
  2. Roles e Autorização Baseada em Perfis (29 min)
  3. Decorator @CurrentUser() e Acesso ao Usuário Autenticado (25 min)
  4. Protegendo Rotas e Recursos com Policies (28 min)

Módulo 5: Configuração e Variáveis de Ambiente

  1. ConfigModule e .env no NestJS (24 min)
  2. Validação de Configuração com Joi (27 min)
  3. Módulos Dinâmicos e Configuração Avançada (29 min)

Módulo 6: Interceptors, Pipes e Decorators Avançados

Domine interceptors para transformação de resposta, custom pipes para processamento de dados e decorators personalizados com Reflector.

  1. Interceptors: Transformação de Resposta e Logging (25 min)
  2. Custom Pipes para Transformação de Dados (25 min)
  3. Custom Decorators e Metadata com Reflector (25 min)
  4. Exception Filters Avançados (25 min)

Módulo 7: Logging e Monitoramento

Configure logging profissional com Winston, implemente rate limiting com Throttler e health checks com Terminus.

  1. Logger do NestJS e Winston (25 min)
  2. Throttling, Rate Limiting e Segurança (25 min)
  3. Health Checks e Monitoramento (25 min)

Módulo 8: Testes no NestJS

Domine testes unitários de services e controllers com Jest, testes E2E com Supertest e cobertura de código.

  1. Testes Unitários de Services com Jest (25 min)
  2. Testes Unitários de Controllers (25 min)
  3. Testes E2E com Supertest (25 min)
  4. Mocks Avançados, Spies e Cobertura de Código (25 min)

Módulo 9: Projeto Final: API de Blog com Autenticação JWT

Projeto prático completo: construa uma API de blog completa com autenticação JWT, CRUD de posts, relacionamentos e testes.

  1. Planejamento do Projeto: API de Blog Completa (25 min)
  2. Implementando Autenticação e Gestão de Usuários (25 min)
  3. CRUD de Posts com Autorização e Relacionamentos (25 min)
  4. Testes, Refinamentos e Considerações de Deploy (25 min)