Lo que necesitas entender antes de comenzar el proyecto
Qué ocurre en cada paso cuando el usuario busca un Pokémon
El navegador hace fetch() a la PokeAPI y recibe un objeto JSON con todos los datos del Pokémon.
El JavaScript extrae imagen, nombre, tipo y estadísticas del JSON y los inserta en el DOM.
Al hacer clic en "Guardar", el frontend hace fetch() POST a Express, que ejecuta un INSERT INTO en MySQL.
Un GET al backend hace SELECT * FROM pokemon y regresa todos los Pokémon guardados como JSON.
API pública y gratuita con datos de todos los Pokémon — perfecta para aprender
Reemplaza {nombre} con cualquier Pokémon: pikachu, charizard, bulbasaur…
Instalar herramientas y crear la estructura de carpetas
node -v en terminal.SQL para crear la tabla donde guardaremos los Pokémon
Archivo que conecta Node.js con la base de datos MySQL
El corazón del backend: recibe peticiones y las procesa
req.body estaría vacío al recibir JSONhttp://localhost:3000npm install -g nodemon
Ruta que recibe el JSON del frontend y lo inserta en MySQL
? evitan inyección SQL. Seguridad básicaWHERE nombre = '${nombre}' — eso permite SQL Injection. Usa siempre los ? parametrizados.
Ruta que consulta todos los Pokémon guardados en MySQL
La interfaz que ve el usuario: búsqueda, tarjeta y lista de guardados
document.getElementById() para manipular el DOM.
Usar fetch() y async/await para pedir datos a la API externa
Insertar la tarjeta en el DOM y enviar JSON al backend
Todo el recorrido de los datos de principio a fin
Los problemas más comunes que encontrarás — y cómo resolverlos
app.use(cors()) en server.js y que instalaste el paquete cors.
express.json() o el header Content-Type: application/json.app.use(express.json()) en server.js y verifica el fetch del frontend.
node server.js y verifica que el puerto sea el mismo en server.js y en app.js.
.trim().toLowerCase() antes del fetch. Prueba en el navegador: pokeapi.co/api/v2/pokemon/pikachu
nombrePokemonbtnGuardar mejor que btn1const PORT = 3000Comprobar que los Pokémon se guardaron correctamente
Lo que deberás entregar al finalizar el taller
SELECT * FROM pokemon.
"Ahora entiendes cómo funciona internet por dentro.
Cada app que usas sigue este mismo flujo."
— Principios de Arquitectura Web · Aplicaciones Full Stack