Need short Spanish title, no quotes.Cacheo en Node.js con TypeScript usando globalThis y declare global

Cacheo en Node.js con TypeScript usando globalThis y declare global
Trabajar en un entorno Node.js con TypeScript a menudo exige un mecanismo de cacheo sencillo y ligero para guardar variables que permanezcan vivas mientras el servidor siga en ejecución. En Q2BSTUDIO, empresa de desarrollo de software y aplicaciones a medida especializada en inteligencia artificial, ciberseguridad y servicios cloud aws y azure, solemos aplicar soluciones prácticas como esta para optimizar llamadas externas y mejorar el rendimiento de APIs y microservicios.
El problema que afronté en un proyecto real consistía en gestionar reservas de talleres. Cada reserva tenía un vehicle_id que apuntaba a un vehículo en un sistema externo. Un tercero necesitaba obtener los datos de la reserva junto con los detalles del vehículo en la misma llamada API. Para ello implementé un hook en Directus que se ejecuta antes de cada fetch de bookings y que detecta si existe vehicle_id, recupera el vehículo externo y lo anexa al resultado de la reserva.
El reto principal era evitar llamadas API repetidas por el mismo vehicle_id, ya que los datos de vehículo cambian poco y repetir peticiones consume tiempo y ancho de banda. La solución fue añadir una capa de cache sencilla que mantuviera los datos mientras el proceso Node siga activo.
Que es globalThis En JavaScript y TypeScript globalThis es el objeto que da acceso al scope global independientemente del entorno. Cualquier variable adjuntada a globalThis queda accesible desde cualquier parte del código y vive durante la vida del proceso. Ejemplo sencillo globalThis.myAppName = DriveMotive; console.log(globalThis.myAppName); // Output DriveMotive
Usar globalThis con TypeScript En TypeScript aparecerá un error si intentas hacer globalThis.__vehicleCache = new Map(); porque la propiedad __vehicleCache no existe en el tipo typeof globalThis. TypeScript necesita que declares explícitamente esa variable global para mantener la seguridad de tipos.
Como declarar una variable global en TypeScript Paso 1 indicar que el fichero es un modulo añadiendo export {}; Paso 2 declarar la variable global declare global { var __vehicleCache: Map<string, any> | undefined; } Esto le dice a TypeScript que existe una variable global __vehicleCache que puede ser un Map o undefined. Paso 3 inicializar la cache en la lógica real const vehicleCache = (globalThis.__vehicleCache ??= new Map()); Esta linea comprueba si __vehicleCache ya existe en globalThis, si existe la asigna a vehicleCache y si no existe crea un new Map y la asigna.
Beneficios y buenas practicas Este enfoque es ligero, evita dependencias extra y es ideal para datos que cambian poco durante la vida del servidor. No es una cache distribuida ni persistente entre reinicios, pero es perfecta para optimizar llamadas repetidas en servicios internos. Si el proyecto requiere escalado horizontal o coherencia entre instancias conviene combinar este patrón con soluciones como Redis o caches en la nube.
En Q2BSTUDIO ayudamos a integrar estas soluciones dentro de arquitecturas de aplicaciones a medida, desde la implementación de hooks y caches en backend hasta despliegues en servicios cloud aws y azure y estrategias de inteligencia de negocio y power bi. Si buscas desarrollar una solución robusta para tu negocio visita desarrollo de aplicaciones y software a medida y para proyectos de inteligencia artificial y agentes IA consulta nuestros servicios de inteligencia artificial. Palabras clave relevantes: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.
Comentarios