NestJS Intermediário: Banco de Dados, Autenticação e Testes
- Nível: Intermediário
- Módulos: 9
- Aulas: 34
- Tempo de leitura: 15h 14min
- Tecnologias: NestJS, Node.js, TypeScript
- Preço: Gratuito
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:
- Instalar e configurar Prisma ORM em um projeto NestJS, criar schema e rodar migrações de banco de dados
- Implementar operações CRUD completas com Prisma, incluindo filtros, paginação e ordenação
- Modelar relacionamentos One-to-Many e Many-to-Many no Prisma e fazer queries avançadas com include e select
- Implementar autenticação com JWT, hash de senhas com bcrypt e refresh tokens para segurança
- Criar Guards e decoradores customizados para controlar acesso a rotas baseado em autenticação e roles
- Usar ConfigModule para gerenciar variáveis de ambiente de forma segura e validada
- Escrever testes unitários e de integração com Jest para controllers, services e guards
- Construir uma API completa de blog com autenticação, autorização e persistência de dados
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
- Introdução ao Prisma ORM no NestJS (25 min)
- Criando o Schema Prisma e Migrações (28 min)
- CRUD Completo com Prisma e NestJS (30 min)
- Filtros, Paginação e Ordenação (32 min)
Módulo 2: Relacionamentos com Prisma
- Relacionamentos One-to-Many no Prisma (28 min)
- Relacionamentos Many-to-Many (26 min)
- Queries Avançadas: include, select e nested writes (29 min)
- Transações no Prisma (31 min)
Módulo 3: Autenticação com JWT
- Fundamentos de Autenticação e Hash de Senhas (27 min)
- Implementando Registro e Login (30 min)
- Gerando e Validando JWT com @nestjs/jwt (32 min)
- Refresh Tokens e Segurança Avançada (33 min)
Módulo 4: Guards e Autorização
- Criando o JwtAuthGuard com Passport (26 min)
- Roles e Autorização Baseada em Perfis (29 min)
- Decorator @CurrentUser() e Acesso ao Usuário Autenticado (25 min)
- Protegendo Rotas e Recursos com Policies (28 min)
Módulo 5: Configuração e Variáveis de Ambiente
- ConfigModule e .env no NestJS (24 min)
- Validação de Configuração com Joi (27 min)
- 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.
- Interceptors: Transformação de Resposta e Logging (25 min)
- Custom Pipes para Transformação de Dados (25 min)
- Custom Decorators e Metadata com Reflector (25 min)
- 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.
- Logger do NestJS e Winston (25 min)
- Throttling, Rate Limiting e Segurança (25 min)
- 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.
- Testes Unitários de Services com Jest (25 min)
- Testes Unitários de Controllers (25 min)
- Testes E2E com Supertest (25 min)
- 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.
- Planejamento do Projeto: API de Blog Completa (25 min)
- Implementando Autenticação e Gestão de Usuários (25 min)
- CRUD de Posts com Autorização e Relacionamentos (25 min)
- Testes, Refinamentos e Considerações de Deploy (25 min)