- 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 y organización de módulos en NestJS para aplicaciones escalables
Clase 10 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
La programación modular es un enfoque esencial para crear aplicaciones escalables y bien organizadas en NestJS. Permite encapsular funcionalidades específicas en módulos, facilitando el mantenimiento y la expansión del proyecto. Aquí encontrarás los puntos clave y recomendaciones prácticas extraídas directamente del proceso de modularización con NestJS.
¿Qué es la programación modular y por qué es importante en NestJS?
La programación modular significa dividir una aplicación en módulos independientes, cada uno dedicado a una funcionalidad concreta. Por ejemplo, en un e-commerce, se puede tener un módulo para órdenes de compra, otro para autenticación y uno más para facturación. Cada uno contiene sus propios controllers, services y entidades enfocadas en ese dominio.
Esto ayuda a mantener el código bien organizado, aislar responsabilidades y escalar la aplicación sin complicaciones. Así, el código de usuario se mantiene separado del resto, haciendo que los cambios o mejoras no impacten otros módulos.
¿Cómo se estructura un módulo en NestJS?
Un módulo suele contener:
- Controllers para exponer endpoints HTTP a diferentes clientes, como aplicaciones móviles o web.
- Providers, en los que se incluyen los services, que inyectan lógica reutilizable en los controllers.
- Entidades y modelos de datos, que se utilizan internamente y no requieren ser importados explícitamente en el módulo.
- Exportaciones para compartir servicios con otros módulos cuando sea necesario.
Por convención, los servicios suelen compartirse exportándolos, mientras que los controllers normalmente no se exponen fuera de su propio módulo.
¿Cómo crear y organizar módulos en una aplicación NestJS?
En el proceso práctico se utiliza el generador de módulos de NestJS con el comando:
ng g mo users
Esto crea la estructura básica del user module. Es importante mover los controllers y services relacionados desde el app module al nuevo user module, eliminando el código y archivos sobrantes. Así, el app module queda limpio y enfocado en importar otros módulos funcionales.
Si se necesita compartir servicios entre módulos, basta con añadir dichos services en la sección exports del módulo, permitiendo su uso en otros contextos, como la autenticación o consultas cruzadas.
¿Qué recomendaciones prácticas surgen del refactor y la modularización?
- Mantener cada módulo con un scope bien definido y relacionado con una única funcionalidad.
- No compartir controllers entre módulos, solo services cuando sea útil.
- Exportar services que vayan a ser utilizados en otros módulos.
- Limpiar el app module de controllers y servicios directos, usando solo módulos importados.
- Hacer pruebas tras el refactor; algunos endpoints pueden dejar de funcionar si han sido eliminados o movidos de módulo.
Implementando estos pasos, la aplicación sigue funcionando correctamente y gana una estructura modular que hace sencillo agregar nuevas partes o modificar las existentes. Comparte dudas, ideas o experiencias organizando tus módulos, ¡así entre todos seguimos aprendiendo!