- 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 entidades ORM con decoradores en TypeScript
Clase 13 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
Desarrollar aplicaciones modernas requiere gestionar datos de manera eficiente y segura. Entender cómo crear entidades con un ORM en TypeScript permite estructurar la información siguiendo principios sólidos de la programación orientada a objetos, facilitando así la persistencia y adaptabilidad de proyectos en distintos motores de base de datos.
¿Qué ventajas ofrece usar un ORM en proyectos TypeScript?
Los ORMs permiten definir entidades y sus atributos directamente en el código usando clases y decoradores. Puedes especificar restricciones, tipos de datos como varchar, e incluso longitudes máximas de las columnas. Además, los ORMs ofrecen abstracción del motor: si decides cambiar de PostgreSQL a MySQL solo adaptas el driver de conexión, sin modificar la lógica de las entidades.
- Mapeo directo entre clases y tablas.
- Independencia del motor de base de datos.
- Facilidad para definir restricciones y atributos.
¿Cómo crear la primera entidad de usuario en TypeScript?
El proceso inicia creando una carpeta llamada Entities dentro del módulo users. Allí, generas un archivo llamado user.entity.ts, siguiendo la convención de usar clases exportadas. Los decoradores permiten definir columnas, identificadores y restricción de unicidad.
- Se define un ID autoincremental usando un decorador como @PrimaryGeneratedColumn, lo que evita colisiones incluso si se eliminan registros.
- Para el campo email, se especifica tipo varchar, longitud máxima de 155 y la restricción unique: true para evitar duplicados.
- Los campos createdAt y updatedAt aprovechan decoradores especiales para autocalcular fechas sin intervención manual.
El uso correcto del naming es crucial. Aunque en TypeScript se emplea el camelCase, en base de datos se recomienda seguir el estándar con guion bajo, explícitamente señalado mediante la propiedad name en los decoradores.
- Se define el nombre de tabla en plural, como "users", por coherencia en la base de datos.
¿Qué estructura debe tener la entidad de perfil y cómo modificar la de usuario?
Se sugiere dividir la información personal en dos entidades:
- User: Solo debe contener el email y el password, enfocado exclusivamente en datos de acceso.
- Profile: Debe incluir ID, createdAt, updatedAt, nombre, apellido y avatar. Esta entidad queda separada y sin relación por ahora, siguiendo los mismos principios que la de usuario.
Se recomienda ubicar la nueva entidad profile.entity.ts dentro de la carpeta entities, permitiendo mantener una estructura organizada y coherente.
- No es necesario modificar DTOs ni servicios todavía, solo crear y ajustar las entidades según lo aprendido.
¿Listo para crear tus entidades y mejorar la estructura de tu proyecto? Comparte tus avances, dudas o experiencias relacionadas con ORMs y TypeScript para enriquecer el aprendizaje.