Boost Academy
FormaciónEvaluacionesPerfil
Volver
  • En directo

Node — Intermedio

8h de clase en directo·HACK A BOSS·Español

Skills que aprenderás

  • node

Convocatorias

Necesitas un plan activo

Para acceder a los cursos en directo necesitas un plan activo. Estamos trabajando para que los planes estén disponibles pronto — ¡mantente atento!

No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.

Descripción

Objetivos

Temario

Requisitos técnicos

Conocimientos previos

Detalles de la convocatoria

Recursos

No hay recursos disponibles todavía para esta convocatoria

Dirigido a desarrolladores que ya dominan los fundamentos de Node.js y desean construir APIs REST de producción con Express, este curso de 8 horas aborda el ciclo completo de desarrollo de una API robusta: desde la arquitectura en capas y la integración de bases de datos con ODM/ORM, hasta la autenticación con JWT, la validación de entradas, el manejo centralizado de errores y la gestión segura de variables de entorno. Al finalizar, el participante será capaz de entregar una API Express estructurada, protegida y lista para integrarse en un entorno de equipo real.

  1. Explicar el propósito de cada capa en una arquitectura REST (router, controller, service, model) y los beneficios que aporta la separación de responsabilidades al mantenimiento del código.
  2. Describir los fundamentos del estándar JWT y los mecanismos de autenticación sin estado, distinguiendo cuándo una ruta debe ser pública y cuándo protegida.
  3. Identificar los patrones de error más habituales en código asíncrono (Promises no resueltas, errores silenciados, race conditions básicas) y explicar su impacto en el comportamiento de la aplicación.
  4. Diseñar una API REST con Express organizada en capas, aplicando la separación de responsabilidades de manera consistente en toda la base de código.
  5. Integrar un middleware de autenticación basado en JWT para proteger rutas privadas, configurando el router de forma que las rutas públicas y protegidas queden claramente diferenciadas.
  6. Integrar un ODM o ORM (Mongoose o Sequelize) en una aplicación Express, implementando operaciones CRUD completas con manejo explícito de errores asíncronos.
  7. Diseñar un middleware de manejo de errores centralizado que distinga errores operacionales de errores de programación y devuelva respuestas HTTP con códigos semánticos apropiados.
  8. Depurar fallos de comportamiento asíncrono en fragmentos de código dados, localizando la causa raíz y aplicando la corrección necesaria.
  9. Comparar estrategias de validación de datos de entrada (validación manual frente a librerías como Joi, Zod o express-validator), justificando la elección según el contexto del proyecto, e implementar la respuesta HTTP uniforme para todos los endpoints mediante una función o clase helper.
  10. Adaptar la configuración de una aplicación Node.js para gestionar variables de entorno sensibles con dotenv, garantizando que ninguna credencial quede expuesta en el repositorio.

Arquitectura en capas de una API REST con Express. El curso arranca estableciendo el modelo de capas router → controller → service → model como eje central de toda la formación. Se estudia el rol de cada capa, los contratos entre ellas y las consecuencias prácticas de mezclar responsabilidades. A partir de este esquema se construye el proyecto de referencia que evolucionará a lo largo de las sesiones.

Persistencia con ODM/ORM: Mongoose y Sequelize. Se integra una base de datos en el proyecto mediante Mongoose (MongoDB) o Sequelize (SQL), eligiendo el adaptador según el contexto del ejercicio. Se implementan las cuatro operaciones CRUD prestando especial atención al manejo de errores asíncronos con async/await y bloques try/catch, y se discute cómo la capa model debe aislar al resto de la aplicación de los detalles del driver de base de datos.

Asincronía avanzada y depuración. Con la persistencia en marcha se examinan los patrones de error más frecuentes en código asíncrono: Promises que nunca se resuelven, errores silenciados por un catch vacío y race conditions básicas. Mediante fragmentos de código deliberadamente rotos, los participantes practican la localización de la causa raíz y la aplicación de la corrección, reforzando el razonamiento sobre el event loop y la cola de microtareas.

Validación de datos de entrada. Se comparan la validación manual y las librerías especializadas (Joi, Zod, express-validator), analizando verbosidad, mantenibilidad, integración con TypeScript y coste de adopción. Tras la comparativa se selecciona y aplica una estrategia al proyecto de referencia, ubicando la lógica de validación como middleware previo al controller.

Autenticación con JWT y gestión de rutas. Se integra un middleware de autenticación basado en JSON Web Tokens. Se estudia la estructura del token, la firma, la verificación y la propagación del payload al contexto de la solicitud. La configuración del router separa de forma explícita las rutas públicas de las protegidas, y se analizan los errores de autenticación más habituales (token caducado, firma inválida, header ausente).

Manejo centralizado de errores y respuestas uniformes. Se diseña el middleware de error de Express que ocupa el último lugar de la cadena: distingue errores operacionales (esperados, recuperables) de errores de programación (inesperados, que deben registrarse y alertar), y devuelve códigos HTTP semánticamente correctos. Paralelamente se define un formato de respuesta único —tanto para éxito como para error— y se encapsula en una función o clase helper que todos los controllers usan, garantizando consistencia en toda la API.

Gestión segura de variables de entorno. El bloque de cierre aborda la configuración de dotenv, la separación de archivos .env por entorno, las buenas prácticas de .gitignore y la provisión de un archivo .env.example como contrato de configuración para el equipo. Se revisan los riesgos concretos de exponer credenciales en el repositorio y las medidas de mitigación disponibles.

  • Node.js 18 LTS o superior instalado localmente.
  • npm 9 o superior (incluido con Node.js 18).
  • Editor de código con soporte para JavaScript/TypeScript (se recomienda VS Code con las extensiones ESLint y Prettier).
  • Cliente HTTP para prueba de APIs: Thunder Client, Insomnia o Postman.
  • Git instalado y cuenta en GitHub o repositorio equivalente accesible.
  • Docker Desktop (opcional pero recomendado para levantar instancias de MongoDB o PostgreSQL sin instalación local).
  • Conexión a internet para descargar dependencias de npm durante las sesiones prácticas.
  • Fundamentos de Node.js: módulos CommonJS/ESM, sistema de ficheros, gestión de paquetes con npm.
  • Creación de servidores HTTP básicos con Express: definición de rutas, uso de middlewares integrados y manejo básico de petición y respuesta.
  • Programación asíncrona en JavaScript: callbacks, Promises y sintaxis async/await.
  • Control de versiones con Git a nivel básico (commit, push, uso de .gitignore).