Saltar al contenido principal

Introducción a NestJS

NestJS es un framework progresivo de Node.js diseñado para construir aplicaciones de servidor (backend) eficientes, confiables y escalables. Está construido con TypeScript de forma nativa y combina elementos de la Programación Orientada a Objetos (POO), la Programación Funcional (FP) y la Programación Reactiva Funcional (FRP).


1. Fundamentos Conceptuales y Arquitectura​

NestJS proporciona una arquitectura de aplicación lista para usar (out-of-the-box) que permite a los desarrolladores y equipos crear aplicaciones altamente testeables, escalables, sueltamente acopladas y fáciles de mantener. Se inspira fuertemente en patrones de diseño probados en el desarrollo empresarial, como la Inyección de Dependencias (DI) y la arquitectura modular en capas (similar a Angular o Spring Boot).

Ciclo de Vida de una Solicitud (Request Lifecycle)​

En NestJS, las solicitudes HTTP entrantes atraviesan una secuencia ordenada de etapas antes de retornar una respuesta al cliente. Cada etapa cumple una función específica de seguridad, validación, orquestación o manejo de errores:

Ciclo de vida de una solicitud HTTP en NestJS

Etapas del Ciclo de Vida:​

  1. Cliente (HTTP Request): El cliente (navegador, aplicación móvil o Postman) emite una petición con método, cabeceras (headers), parámetros y cuerpo (body).
  2. Middlewares: Se ejecutan de primero con acceso a req y res. Se emplean para registros de tráfico (logging), análisis de cookies y habilitación de CORS.
  3. Guards (Guardias): Determinan si la petición tiene autorización para continuar evaluando tokens JWT, sesiones o permisos de roles.
  4. Interceptors (Pre): Se activan antes del controlador para enlazar contexto de ejecución, inicializar auditorías o medir tiempos de respuesta.
  5. Pipes (Tuberías): Validan y transforman los datos de entrada según los esquemas definidos en los DTOs (ej. validación de campos obligatorios o conversión con ParseIntPipe).
  6. Controller y Service: El controlador resuelve la ruta HTTP (@Get, @Post) y delega la ejecución a los servicios inyectados, donde reside la lógica de negocio y persistencia.
  7. Interceptors (Post): Interceptan el valor devuelto por el servicio para mutar, envolver o formatear la estructura final de datos (por ejemplo, encapsular en { data: ... }).
  8. Exception Filters (Filtros de Excepciones): Si ocurre un error no capturado en cualquier punto del ciclo, este filtro estandariza y serializa el mensaje de error en una respuesta HTTP limpia (400, 404, 500).
  9. Respuesta HTTP: El servidor envía el código de estado y el payload JSON final de regreso al cliente.

2. Recurso Visual y Hoja de Ruta​

A continuación puedes consultar la presentación interactiva del módulo y la hoja de atajos (Cheatsheet) oficial con los comandos e instrucciones clave de NestJS.


NestJS Cheatsheet

3. Cuestionario de Autoevaluación​

Cargando cuestionario...