Tutoriales

Modernizar una aplicación Node.js

Aprende a usar IBM Bob para la modernización de aplicaciones actualizando una API Express de Node.js de la versión 16 a la 22. Prueba el desarrollo asistido por IA con modos, aprobaciones y codificación literaria en este tutorial práctico.

Introducción

Bob es un socio de IA para el SDLC (Ciclo de Vida del Desarrollo de Software) que aumenta tus flujos de trabajo existentes. En este tutorial, aprenderás algunas de las características principales de Bob modernizando una API Express de TypeScript de Node.js 16 a Node.js 22. No necesitas experiencia en Node.js o TypeScript para completar el tutorial. Aprenderás cómo Bob analiza dependencias y moderniza patrones de código.

Características clave que aprenderás

Bob proporciona cuatro capacidades esenciales que usarás mientras actualizas la API:

  • Modos: Personas especializadas que adaptan el comportamiento de Bob para tareas específicas.
  • Menciones de contexto: Referencia elementos específicos del proyecto en conversaciones con Bob, como archivos, carpetas o commits de Git.
  • Flujo de aprobación: Revisa cada herramienta que Bob planea usar antes de que se ejecute.
  • Codificación literaria: Escribe código con Bob directamente en tu editor. Escribe instrucciones en lenguaje natural justo donde debe ir el código.

Requisitos previos

Este tutorial usa una API REST Express de TypeScript como proyecto de ejemplo. Sin embargo, no necesitas experiencia en Node.js o TypeScript.

Para completar este tutorial, necesitas lo siguiente:

  • Docker instalado y funcionando en tu estación de trabajo. Usas Bob para crear un Dockerfile para la aplicación.
  • Bob IDE instalado.
  • Has completado el tutorial de inicio rápido para familiarizarte con la interfaz y las funciones de Bob.
  • Es posible que quieras iniciar una nueva ventana de contexto para este tutorial. Consulta el tutorial Crear una nueva ventana de contexto para obtener instrucciones.

Configura tu espacio de trabajo

Inicia IBM Bob y clona el repositorio de ejemplo para comenzar a trabajar con la aplicación Node.js que modernizarás.

Inicia IBM Bob

Inicia la aplicación IBM Bob en tu computadora.

Abre la barra lateral de Bob

Si la barra lateral de Bob aún no está abierta, ábrela haciendo clic en el ícono de Bob junto a la barra de navegación o usa el atajo Option + Command + B (Mac) o Ctrl + Alt + B (Windows).

Barra lateral de Bob abierta en IBM Bob IDE

Clona el repositorio del tutorial

Clona el repositorio que contiene la aplicación de ejemplo haciendo clic en el ícono de archivos ubicado en la parte superior izquierda del panel de Bob IDE. Luego haz clic en Clonar Repositorio y pega el siguiente repositorio de GitHub en la barra de búsqueda. Bob te preguntará dónde quieres guardar el repositorio. Puedes guardarlo donde quieras.

https://github.com/IBM/bob-demo.git

Clonando el repositorio en Bob IDE

Abre el repositorio

Cuando Bob te pregunte si quieres abrir el repositorio clonado, haz clic en Abrir. Si Bob pregunta "¿Confías en los autores de los archivos en esta carpeta?", haz clic en Sí, confío en los autores.

Observa los archivos del proyecto en el Explorador y el panel de chat de Bob en el lateral.

Archivos del proyecto mostrados en el Explorador con el panel de chat de Bob

Deshabilita la aprobación automática

Asegúrate de que la aprobación automática esté deshabilitada. Puedes encontrar esta configuración en Permisos. Con la aprobación automática deshabilitada, Bob te pide permiso antes de ejecutar cualquier cambio propuesto. Esto garantiza que mantengas el control sobre todas las modificaciones en tu código.

Construye el entorno en contenedores

Crea un Dockerfile para ejecutar la aplicación en un entorno en contenedores, eliminando la necesidad de instalar Node.js o dependencias localmente.

Cambia al modo Agent

Cambia Bob al modo Agent haciendo clic en el menú desplegable de selección de modo y seleccionando Agent.

Los Modos son una forma en que Bob respeta el principio de privilegio mínimo. Cada modo le da a Bob permiso para proponer un conjunto específico de tareas en tu nombre. El modo Agent permite a Bob escribir, modificar y refactorizar código. Bob aún pide permiso antes de cada operación.

Crea el Dockerfile

Ingresa el siguiente prompt en la interfaz de chat de Bob para pedirle que cree el Dockerfile.

Crea un Dockerfile para esta aplicación Node.js TypeScript.
Debe usar Node 16 para coincidir con la versión actual de la aplicación, compilar el código TypeScript y ejecutar la aplicación en el puerto `3000`.

Bob solicitará acceso de lectura a varios archivos para comprender los requisitos del Dockerfile. Haz clic en Aprobar para otorgar a Bob permiso para leer esos archivos.

Bob determina la estructura apropiada del Dockerfile y te muestra el archivo propuesto. Los botones de acción aparecen encima del campo de entrada del chat. Haz clic en Guardar para crear el archivo. Guardar escribe o modifica archivos en tu proyecto. Más adelante en este tutorial, Bob actualiza el Dockerfile para usar Node 22.

Verifica que la aplicación heredada se compile

Antes de modernizar, verifica que el código heredado se compile y ejecute correctamente. Esta línea base asegura que puedas identificar cualquier problema que introduzca la modernización.

Durante la fase de compilación, Bob te dirá que la compilación falló porque el Dockerfile usa npm ci, que requiere un archivo package-lock.json que no existe.

En el panel de chat de Bob, dile a Bob que compile y pruebe la aplicación.

Compila y prueba la aplicación heredada usando Docker para verificar que funcione correctamente antes de la modernización. La aplicación debe responder a solicitudes de API en /api/todos con datos de ejemplo

Después de probar, limpia el contenedor.

Bob te pide que guardes un cambio en el Dockerfile que solucionará el problema de package-lock.json con el siguiente mensaje:

La compilación falló porque no hay un archivo package-lock.json. Necesito actualizar el Dockerfile para usar `npm install` en lugar de `npm ci`. Déjame arreglar esto.

La capacidad de Bob para detectar y corregir errores de compilación es un ejemplo de cómo trabaja contigo para solucionar y resolver problemas durante las implementaciones.

Una vez que Bob aplica la corrección y termina la compilación, muestra un resumen de los resultados de compilación y prueba, confirmando que la aplicación heredada funciona correctamente en un entorno en contenedores. Ahora tienes una línea base verificada con la que comparar después de modernizar la aplicación en la siguiente sección.

Tú y Bob han verificado que la aplicación heredada funciona correctamente.

Explora la base de código Node.js con el modo Ask de Bob

Antes de modernizar, haz clic en el menú desplegable de selección de modo y cambia al modo Ask de Bob. El modo Ask solo puede leer archivos, por lo que puedes explorar código de forma segura sin hacer cambios accidentalmente. También puedes escribir /ask en el chat de Bob para cambiar al modo Ask.

Usa menciones de contexto @ para revisar el proyecto

Bob admite menciones de contexto @ que te permiten hacer referencia a archivos, carpetas o problemas específicos directamente en tus prompts. Las menciones de contexto le dan a Bob información precisa sobre lo que quieres discutir.

Explora los archivos package.json, tsconfig.json y Dockerfile diciéndole explícitamente a Bob qué archivos analizar usando menciones @. Aprender sobre estos archivos te ayuda a comprender los requisitos de modernización antes de hacer cambios.

En el panel de chat de Bob, ejecuta el siguiente prompt:

@package.json ¿Qué versión de Node.js está usando este proyecto? ¿Qué dependencias necesitarían actualizarse para Node.js 22? Dame un resumen breve.

El símbolo @ le dice a Bob que incluya package.json como contexto. Bob no comienza a responder inmediatamente; primero explora tu base de código, leyendo archivos, siguiendo patrones y analizando código. No interrumpas esta fase de exploración.

Bob identifica las siguientes actualizaciones necesarias para Node.js 22:

**Versión actual de Node.js:** 16.x

**Dependencias que necesitan actualizaciones para Node.js 22:**

1. **@types/node**: ^16.18.0 → ^22.x.x (tipos TypeScript para Node.js 22)
2. **typescript**: ^4.9.5 → ^5.x.x (TypeScript 5+ para mejor soporte de Node.js 22)
3. **ts-node**: ^10.9.1 → ^10.9.2+ (asegurar compatibilidad con TS 5 y Node 22)

**Dependencias ya compatibles:**
- **express**: ^4.18.2 ✓ (funciona con Node.js 22)
- **uuid**: ^9.0.0 ✓ (funciona con Node.js 22)
- **@types/express**: ^4.17.17 ✓ (compatible)
- **@types/uuid**: ^9.0.0 ✓ (compatible)

**Resumen:** Solo las dependencias de desarrollo específicas de Node.js necesitan actualizarse. Las dependencias de tiempo de ejecución (Express, UUID) ya son compatibles con Node.js 22.

Analiza la configuración de TypeScript

Pídele a Bob que analice la configuración de TypeScript del proyecto:

@tsconfig.json ¿Qué sistema de módulos y configuraciones del compilador está usando este proyecto TypeScript? ¿Qué dependencias necesitarían actualizarse para Node.js 22? Dame un resumen breve.

Bob responde con los siguientes componentes que necesitas actualizar para Node.js 22:

**Configuración actual de TypeScript:**

**Sistema de módulos:** CommonJS (`"module": "commonjs"`)
- Sistema de módulos tradicional de Node.js usando `require()` y `module.exports`
- Salida: archivos `.js` con sintaxis CommonJS

**Configuraciones del compilador:**
- **Target:** ES2020 (compila a JavaScript ES2020)
- **Lib:** ES2020 (usa características de la biblioteca estándar ES2020)
- **Module Resolution:** Node (algoritmo de resolución estándar de Node.js)
- **Strict Mode:** Habilitado (verificación de tipos completa)

**Actualizaciones recomendadas para Node.js 22:**

1. **target**: ES2020 → **ES2022** o **ESNext** (aprovechar características JS más nuevas)
2. **lib**: ES2020 → **ES2022** (acceder a APIs más nuevas)
3. **module**: Considera migrar a **"node16"** o **"nodenext"** para soporte nativo de ESM
4. **moduleResolution**: "node" → **"node16"** o **"bundler"** (mejor resolución moderna)

**Resumen:** El proyecto usa CommonJS heredado con objetivo ES2020. Para Node.js 22, debes actualizar el objetivo/lib a ES2022+ y considerar migrar a módulos ESM nativos (aunque CommonJS aún funciona bien).

Analiza el Dockerfile

Pídele a Bob que analice el Dockerfile del proyecto:

@Dockerfile ¿Qué versión de Node.js usa este Dockerfile? ¿Qué necesitaría cambiar para Node.js 22? Dame un resumen breve.

Bob responde con lo que necesita actualizarse para Node.js 22:

**Versión actual de Node.js del Dockerfile:** Node 16 Alpine (`node:16-alpine`)

**Cambios necesarios para Node.js 22:**

1. **Imagen base (Línea 2):** `FROM node:16-alpine` → `FROM node:22-alpine`

**Resumen:** Solo se requiere un cambio de línea: actualizar la imagen base de node:16-alpine a node:22-alpine. El resto del Dockerfile es compatible con Node.js 22, aunque la sintaxis de flags de npm podría modernizarse

Ahora comprendes lo que necesita actualizarse. En la siguiente sección, cambias al modo Agent y haces que Bob realice los cambios.

Moderniza la API con el modo Agent de Bob

Bob determinó los siguientes requisitos de modernización para package.json, tsconfig.json y Dockerfile:

  • Cambiar Node.js 16 a Node.js 22 en package.json y Dockerfile
  • Actualizar la configuración de objetivo y módulo del compilador TypeScript
  • Corregir versiones de dependencias obsoletas

Para comenzar a modernizar la aplicación, vuelve al modo Agent para que Bob pueda hacer cambios en el código.

En la interfaz de chat de Bob, ejecuta el siguiente prompt de modernización. Observa las referencias @ que apuntan a Bob a los archivos específicos en los que trabaja:

@package.json @tsconfig.json @Dockerfile

Moderniza esta API Express de Node.js 16 a Node.js 22. Mantén la funcionalidad de la API idéntica - esto es una actualización de plataforma, no un cambio de características. Dame un resumen breve.

Después de que Bob termine de actualizar y probar el código, muestra un resumen similar al siguiente:

Dockerfile — 2 líneas cambiadas

- Ambas etapas FROM node:16-alpine → node:22-alpine

package.json — 3 campos cambiados

- engines.node: 16.x → 22.x
- @types/node: ^16.18.0 → ^22.0.0
- typescript: ^4.9.5 → ^5.0.0

tsconfig.json — 4 configuraciones cambiadas

- target: ES2020 → ES2023
- lib: ["ES2020"] → ["ES2023"]
- module: commonjs → node16 (TypeScript 5 requiere que coincida con moduleResolution)
- moduleResolution: node → node16

Tú y Bob han modernizado la aplicación.

Marca la modernización como completa

Usa la función de codificación literaria de Bob para actualizar el título del todo de ejemplo, marcando la aplicación como modernizada. La codificación literaria te permite escribir instrucciones en lenguaje natural directamente en tu editor en lugar de usar el panel de chat.

Habilita el modo de codificación literaria

En la pestaña Explorador en el lado izquierdo de la pantalla, navega a la carpeta express-todo-api y haz clic en src/db.ts para abrirlo en el editor. Una vez que tengas src/db.ts abierto, activa el modo de codificación literaria haciendo clic en el ícono de varita mágica en la barra de herramientas del editor. Alternativamente, puedes presionar Cmd + I en Mac, o Ctrl + I en Windows y Linux.

Escribe tu instrucción

En el archivo src/db.ts que está abierto en tu editor, pega la siguiente instrucción en la parte superior del archivo, antes de cualquier código:

// Encuentra la propiedad title del objeto todo de ejemplo y cámbiala a "Welcome to the Modernized Node.js 22 API"

Bob entiende que este comentario es una instrucción, en lugar de código regular, porque estás en modo de codificación literaria. Tu instrucción aparece resaltada en el editor.

Genera el código

Haz clic en Generar en la parte inferior del documento.

Bob localiza el objeto sampleTodo en el constructor y te muestra el cambio. Verás el cambio de título de:

Antes:

title: "Learn Node.js modernization"

Después:

title: "Welcome to the Modernized Node.js 22 API"

Acepta los cambios

Haz clic en Aceptar todo en la parte inferior del documento donde hiciste clic en Generar para aplicar el cambio al archivo.

Sal del modo de codificación literaria

Haz clic en Salir debajo de la varita mágica literaria en la parte superior del archivo para salir del modo de codificación literaria.

Has actualizado la API usando codificación literaria. Cuando pruebes la API en la siguiente sección, verás este nuevo título en la respuesta de la API.

Verifica la aplicación modernizada con Docker

Verifica la modernización del código y tu cambio de código literario reconstruyendo y probando el contenedor Docker.

Vuelve al modo Agent y describe lo que quieres que Bob verifique:

Verifica que la aplicación Node.js 22 modernizada funcione compilándola y probándola con Docker. Verifica que la API responda en /api/todos y muestre el título de todo actualizado. Limpia cuando termines. Dame un resumen breve. También quiero ver la validación del nuevo título.

Una vez que Bob verifica que la aplicación ha sido modernizada, te da el siguiente resumen:

✅ **Verificación completa - Modernización de Node.js 22 exitosa**

**Resultados de compilación y prueba:**
- Imagen Docker compilada exitosamente con Node.js 22
- Compilación TypeScript completada sin errores
- Aplicación iniciada y respondió correctamente

**Validación de API:**
{
  "id": "72459851-7953-4a9c-94d3-4f8f1c656d21",
  "title": "Welcome to the Modernized Node.js 22 API",
  "completed": false,
  "createdAt": "2026-02-16T16:35:49.132Z"
}

**Confirmado:**
- ✅ Título de todo actualizado se muestra correctamente: "Welcome to the Modernized Node.js 22 API"
- ✅ Endpoint de API /api/todos responde exitosamente
- ✅ Toda la funcionalidad funciona en Node.js 22
- ✅ Limpieza completada (contenedor e imagen eliminados)

**Resumen:** La API TODO Express modernizada está completamente funcional en Node.js 22 con los datos de ejemplo actualizados mostrando el nuevo título confirmando que la modernización está completa.

La API funciona correctamente, y el título se actualizó a "Welcome to the Modernized Node.js 22 API", confirmando que Bob preservó el comportamiento existente mientras modernizaba la versión de Node.js y las dependencias.

Próximos pasos

En este tutorial, aprendiste cómo modernizar una API Express de Node.js 16 a Node.js 22 usando Bob. Bob analizó tus dependencias, actualizó archivos de configuración y modernizó la configuración de Docker mientras preservaba toda la funcionalidad.

  • Aprende sobre la función de revisión de código de Bob /review para detectar problemas potenciales antes de hacer commit de tu trabajo.
  • Aprende sobre los modos, que son personas especializadas que adaptan el comportamiento de Bob para tus tareas específicas.
  • Aprende cómo usar la interfaz de chat de Bob que es la forma principal de interactuar con Bob.

Luego, trabaja en la serie de tutoriales de introducción a IBM Bob para aprender más sobre las características y capacidades de Bob.

¿Cómo es este tema?