Migración y ajustes en TimewareM 0.3: Cambios en métodos y servicios
Clase 33 de 36 • Curso de NestJS: Persistencia de Datos con TypeORM
Contenido del curso
- 3
Instalación de Docker en Windows, macOS y Ubuntu
01:35 - 4

Configuración de Postgres en Docker Compose
09:18 - 5

Conexión a Postgres en Docker: Terminal y PgAdmin
15:16 - 6

Conexión de NestJS a Postgres con Node Postgres
07:28 - 7

Inyección de Dependencias en NETJS: Conexión a PostgreSQL
10:49 - 8

Conexión a Bases de Datos con Variables de Entorno en Node.js
13:49
- 9

Implementación de TypeORM con NestJS en Proyectos Node.js
09:14 - 10

Creación de Entidades en ORM para Tiendas Virtuales
07:46 - 11

Implementación del Patrón Repository en NestJS con TypeORM
13:31 - 12

Operaciones CRUD en ProductService usando TypeORM y Postgres
13:35 - 13

Cambio de Postgres a MySQL en Docker para CRUD de Productos
17:28
- 18

Relaciones 1 a 1 en Bases de Datos con TimeORM
18:58 - 19

Manipulación de Relaciones Uno a Uno en Controladores y Servicios
10:28 - 20

Relaciones Uno a Muchos en Bases de Datos con TypeORM
10:36 - 21

Gestión de Relaciones Uno a Muchos en Controladores de API
10:27 - 22

Relaciones Muchos a Muchos en Time1M: Creación y Manejo Práctico
08:38 - 23

Manipulación de Relaciones Muchos a Muchos en Controladores
15:08 - 24

Manipulación de Relaciones Muchos a Muchos con TimeORM en JavaScript
19:09 - 25

Relaciones Muchos a Muchos con Campos Agregados en TimeWareM
16:41 - 26

CRUD de órdenes de compra y gestión de ítems en NestJS
30:07
- 27

Paginación de Productos con Limit y Offset en Controladores API
10:37 - 28

Filtrado de Precios con Rango Usando Between en Time Wareham
10:17 - 29

Indexación de Parámetros en Bases de Datos: Uso y Precauciones
02:56 - 30

Buenas prácticas de nombramiento en JavaScript y bases de datos
17:52 - 31

Serialización y Transformación de Datos en APIs con ClassTransformer
16:55
¿Cómo migrar nuestra API en TimewareM 0.3?
Al actualizar nuestras dependencias, enfrentamos el desafío de adaptar nuestra API debido a cambios en la nueva versión de TimewareM. Aunque inicialmente pueda parecer abrumador, con un enfoque paso a paso, estos ajustes se vuelven manejables. Aquí te guiaremos a través de los cambios robustos en TimewareM versión 0.3, destacando los pasos esenciales para realizar una migración exitosa.
¿Qué cambios debemos hacer en los servicios?
Los servicios son la parte de nuestro código más afectada por los cambios. La estructura de las consultas, especialmente las relativas a métodos como find, where, y findConditions, han evolucionado para mejorar la API y manejar mejor las bases de datos.
-
Cambios en
Find Conditions: El tipoFindConditionsya no existe y ha sido reemplazado porFindOptions.Where, lo que implica cambios en la forma de estructurar nuestras consultas dinámicas.// Cambio de FindConditions a FindOptions.Where let options: FindOptions.Where<Entity> = { // ... }; -
Método
FindOne: Anteriormente recibía un ID directamente como parámetro, pero ahora todo debe pasarse medianteoptions.// Ejemplo de nuevo uso de FindOne const entity = await repository.findOne({ where: { id: entidadId } });
¿Cómo se ajustan los métodos FindByIds?
Anteriormente, el uso de FindByIds estaba en desuso y se recomienda ahora usar el método FindBy junto con el operador In.
-
Ejemplo de ajuste con
FindBy:// Nuevo método usando FindBy con operador In const entities = await repository.findBy({ where: { id: In(listaDeIds) } });
Este enfoque mejora la compatibilidad y uso uniforme de la API, aprovechando los operadores para optimizar las consultas.
¿Qué hacer con el módulo HTTP?
La versión 9 de NestJS cambia la ubicación del módulo HTTP, separándolo de los módulos comunes @nestjs/common a un nuevo paquete llamado @nestjs/axios.
-
Migración del módulo HTTP:
-
Instalar el nuevo paquete HTTP:
npm install @nestjs/axios axios -
Ajustar las importaciones en el código para usar el nuevo módulo:
import { HttpService } from '@nestjs/axios'; -
Mejorar el manejo de promesas con
lastValueFromde RxJS:const tags = await lastValueFrom(httpService.get(...));
-
¿Cómo garantizar la validación de variables de entorno?
Verificar que las configuraciones están correctamente definidas es esencial para el correcto funcionamiento de nuestra API. Asegúrate de incluir todas las variables de entorno necesarias en el archivo de configuración:
-
Ejemplo de configuración:
API_KEY=miApiKey DATABASE_NAME=miBD DATABASE_PORT=5432Implementa una buena práctica adicional con validaciones en tus variables de entorno, lo cual previene errores operativos y simplifica el depurado.
¿Qué otros cambios necesitamos tener en cuenta?
Actualizar nuestra API a la versión 0.3 de TimewareM no solo trae mejoras de rendimiento, sino también un refuerzo significativo en términos de seguridad y soporte para distintas bases de datos. Aunque los métodos create, update y delete permanecen sin cambios significativos, el tratamiento de las consultas es el área donde debemos concentrar nuestros esfuerzos de migración.
Con esta guía, esperamos que puedas realizar los cambios necesarios de manera eficiente y que estas mejoras en TimewareM combinen robustez y eficiencia para tus servicios API. Recuerda mantener tus habilidades actualizadas y no dudes en revisar cambios futuros que puedan ofrecer herramientas aún más poderosas. ¡Sigue aprendiendo y dominando nuevas tecnologías!