- 1

Instalación y configuración inicial de NestJS para APIs
06:28 - 2

Instalación del CLI de NestJS y primer proyecto con API
11:29 - 3

Creación de endpoints dinámicos para consultar usuarios en NestJS
20:23 - 4

Operaciones CRUD en APIs REST con Postman
23:37 - 5

Método PUT para actualizar usuarios con ID automático
19:42 - 6

Códigos de estado HTTP y manejo de errores en APIs con NestJS
16:07 - 7

DTOs y validación automática de datos en APIs con NestJS
19:31 - 8

Patrón de servicios e inyección de dependencias en NestJS
25:09 - 9

Configuración de variables de entorno en NestJS
20:44 - 10

Creación y organización de módulos en NestJS para aplicaciones escalables
12:26 quiz de Fundamentos y Primer CRUD
Creación de entidad Category con relaciones many-to-many en NestJS
Clase 19 de 35 • Curso de Backend con NestJS
Contenido del curso
- 11

Configuración de PostgreSQL con Docker y Docker Compose
16:08 - 12

Configuración de PostgreSQL con TypeORM en aplicaciones NestJS
12:17 - 13

Creación de entidades ORM con decoradores en TypeScript
09:17 - 14

Implementación del Repository Pattern con TypeORM en NestJS
29:55 - 15

Relaciones uno a uno entre usuarios y perfiles en PostgreSQL
17:00 - 16

Actualización de DTOs con mapped types en NestJS para perfil y usuario
38:56 - 17

Generación automática de módulos CRUD con NestJS y AI
25:34 - 18

Relaciones uno a muchos con TypeORM en NestJS
17:56 - 19

Creación de entidad Category con relaciones many-to-many en NestJS
15:28 - 20

Relaciones many-to-many con TypeORM y validación de arrays
17:40 - 21

Reutilización de servicios entre módulos en NestJS
09:04 - 22

Configuración de migraciones de base de datos con TypeORM
23:01 - 23

Migraciones de base de datos sin pérdida de información
20:46 quiz de Base de Datos y Persistencia con TypeORM
- 24

Cómo proteger contraseñas con hashing usando Bcrypt en NestJS
10:15 - 25

Serialización de datos para excluir campos sensibles en APIs
04:13 - 26

Configuración de autenticación con Passport en NestJS
19:16 - 27

Implementación de endpoint de login con Node.js y NestJS
09:09 - 28

Implementación de JSON Web Token para autenticación en NestJS
16:15 - 29

Protección de endpoints con JWT guards en NestJS
11:34 - 30

Automatización de user ID en APIs con JWT
11:48 quiz de Autenticación y Autorización
- 31

Integración del SDK de OpenAI en Node.js para automatizar contenido
28:26 - 32

Documentación automática de APIs con Swagger en NestJS
15:59 - 33

Preparar una API Node.js para producción: seguridad y despliegue
10:46 - 34

Desplegar aplicación Node.js a producción con Railway y PostgreSQL
21:11 - 35

Desarrollo de API REST escalable con NestJS en producción
02:36
Al integrar una nueva funcionalidad en plataformas modernas, la gestión adecuada de entidades y sus relaciones es esencial para la escalabilidad. En este caso, te mostraremos cómo agregar la entidad Category a un proyecto usando las mejores prácticas en NestJS, enfocándonos en una arquitectura fácil de mantener y expandir.
¿Cómo definir la relación many to many entre posts y categories en una arquitectura de blog?
El objetivo es que una categoría pueda estar asociada a múltiples posts y, al mismo tiempo, un post pueda pertenecer a varias categorías. Este paradigma many to many permite máxima flexibilidad. Así, por ejemplo, un blog post puede clasificarse en DevOps, NestJS y otras categorías, mientras una sola categoría agrupa muchos artículos relacionados.
¿Por qué es importante la estructura modular y cómo deberías organizar los controladores y servicios?
En vez de crear un módulo por cada entidad, se recomienda encapsular entidades relacionadas dentro del mismo módulo. Por ejemplo, tanto post como category viven en el módulo de artículos. Esto promueve una arquitectura más limpia, escalable y manejable.
Sigue el ejemplo de user y profile: aunque son dos entidades distintas, están alojadas en un solo módulo. Para la entidad Category, sí habrá controladores y servicios propios debido a su funcionalidad y autonomía.
- Crea carpetas separadas para controllers y servicios dentro del módulo.
- Coloca todos los archivos relacionados con categories en las carpetas correspondientes.
- Ajusta las rutas de importación tras reorganizar archivos.
- Esto permite que diversos controladores y servicios convivan bajo un mismo módulo.
¿Cuáles son las mejores prácticas al crear la entidad category y sus DTOs?
- Define la entidad category con una columna primaria generada automáticamente y un campo de nombre único, limitado a 255 caracteres.
- Usa nombres en minúsculas y en plural para las tablas según la convención de bases de datos.
- Crea DTOs como create-category.dto, validando el campo name (obligatorio, no vacío y con máximo permitido).
- Crea update-category.dto usando PartialType para mantener la coherencia y reutilización de lógica en las actualizaciones.
¿Cómo utilizar AI y prompts para acelerar la generación de CRUD y componentes?
Aprovecha herramientas de AI como Cursor para - Autogenerar controladores, servicios y DTOs tomando como referencia la entidad y otros archivos ya existentes. - Usa prompts en los que referencies archivos clave (post.service.ts, post.controller.ts) y defines la estructura actual de tu módulo usando el comando tree para mostrar la organización de carpetas y archivos. - Ejecuta el prompt desde la entity para asegurar que la AI tenga el contexto correcto. - Así podrás obtener la generación automática de archivos y la inclusión directa de cada controlador y servicio en el módulo correspondiente.
¿Qué soluciones aplicar ante problemas de rutas y organización tras refactorizar carpetas?
Si tras mover archivos aparecen errores de importación, simplemente: - Ajusta las rutas en los archivos afectados (service, DTO, entity) para que reflejen la nueva ubicación. - Verifica que en el módulo se estén importando correctamente los controladores y servicios.
¿Cómo validar que el CRUD de categories funciona correctamente con Postman?
- Duplica una carpeta de endpoints en Postman y renómbrala para categories.
- Prueba el endpoint GET: al principio estará vacío, si aún no hay categorías creadas.
- El endpoint GET /:id debe devolver mensaje si la categoría no existe.
- Usa CREATE para probar restricciones (name es obligatorio; no se permite un campo "title").
- Verifica las respuestas y mensajes al eliminar y actualizar categorías. Por ejemplo, puedes cambiar el nombre de una categoría y recibir su estado actualizado.
¿Tienes dudas sobre cómo organizar entidades o probar APIs? Comparte tu experiencia con la arquitectura de módulos y el uso de IA en el desarrollo backend.