JavaScript · Sección 16

Node.js: runtime, módulos y E/S

Ejecución de JavaScript fuera del navegador, módulos, archivos, streams, procesos, variables de entorno y trabajo no bloqueante.

3
lecciones
3
ejercicios resueltos
CONTENIDO ORIGINAL

Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.

ANTES DE EMPEZAR

Ubícate antes de avanzar

01 / PUNTO DE PARTIDA

Necesitas módulos, promesas y manejo de errores de JavaScript. Angular no es requisito para comenzar Node.js.

02 / META OBSERVABLE

Al terminar deberías poder relacionar Runtime y módulos con Archivos y streams y resolver un caso nuevo.

03 / TIEMPO SUGERIDO

Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.

04 / PREPARA EL LABORATORIO

Utiliza un navegador con herramientas de desarrollo y una versión LTS de Node.js con npm. Angular y MongoDB se preparan cuando llegues a esos bloques.

Abrir la guía de herramientas →
Diagnóstico rápido: ¿cómo se relacionan Runtime y módulos y Archivos y streams? +

No necesitas acertar todavía. Escribe una hipótesis de dos líneas y compárala con tu respuesta al finalizar; si puedes corregirla y justificar el cambio, hubo aprendizaje.

Ruta guiada · 3 lecciones

Aprende el tema paso a paso

Usarás Node.js como runtime de servidor comprendiendo módulos, asincronía, configuración y límites del event loop.

Al terminar podrás
  • Node.js ejecuta JavaScript fuera del navegador
  • ESM y CommonJS son sistemas distintos que deben configurarse
  • Lee según el tamaño y termina cada ciclo de respuesta
01
Runtime

Node.js ejecuta JavaScript fuera del navegador

Node ofrece procesos, archivos, red y módulos, pero no un DOM por defecto. El event loop coordina callbacks y E/S no bloqueante; trabajo CPU intensivo o APIs síncronas dentro de una solicitud pueden detener a todas las demás. process conserva argumentos, entorno y señales del proceso.

01

No confundas asincronía con ausencia de costo.

02

Evita operaciones sync en rutas concurrentes.

03

Maneja apagado y recursos abiertos.

Comprueba lo aprendido · 01

¿Por qué declarar async una función CPU-intensiva no libera el event loop?

Mostrar respuesta +

Porque async solo cambia cómo se representa el resultado; el código síncrono sigue ejecutándose en el mismo hilo hasta ceder.

02
Módulos y paquetes

ESM y CommonJS son sistemas distintos que deben configurarse

ESM usa import/export y CommonJS require/module.exports. Node decide según extensión y package.json; mezclar sin comprender interoperabilidad produce errores. package.json también declara scripts, engines y dependencias; las variables de entorno configuran despliegues, no se copian al repositorio.

01

Usa node: para módulos incorporados.

02

No leas process.env por toda la aplicación: valida configuración al inicio.

03

Distingue dependencia de desarrollo y ejecución.

Comprueba lo aprendido · 02

¿Por qué no conviene usar process.env.PORT directamente en todos los módulos?

Mostrar respuesta +

Duplica conversión y validación, y hace que la configuración sea una dependencia oculta difícil de probar.

03
Archivos, streams y HTTP

Lee según el tamaño y termina cada ciclo de respuesta

fs/promises resulta cómodo para archivos acotados; streams procesan datos grandes sin cargarlos completos. El módulo http muestra el contrato básico de solicitud y respuesta. Toda rama debe terminar o delegar la respuesta, manejar errores y respetar presión cuando transmite grandes volúmenes.

01

No confíes en rutas construidas desde entrada externa.

02

Usa streams para archivos grandes.

03

Define límites de tiempo y tamaño.

Comprueba lo aprendido · 03

¿Qué ventaja ofrece un stream frente a readFile para un archivo enorme?

Mostrar respuesta +

Mantiene acotada la memoria y permite empezar a procesar antes de recibir todo el contenido.

Resumen de la sección

Tu recorrido en tres ideas

  1. Node.js ejecuta JavaScript fuera del navegador
  2. ESM y CommonJS son sistemas distintos que deben configurarse
  3. Lee según el tamaño y termina cada ciclo de respuesta
CIERRE DE LA SECCIÓN

Comprueba que puedes usarlo

Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.

ERROR 01

Bloquear el event loop con CPU o archivos síncronos dentro de solicitudes.

ERROR 02

Leer variables de entorno dispersas sin validarlas.

DESAFÍO INTEGRADOR

Ahora hazlo sin guía

Crea un servidor Node que sirva un archivo grande por stream, valide configuración y cierre ordenadamente.

Mostrar pauta de corrección +
Una respuesta sólida:
  • La memoria permanece acotada.
  • Toda respuesta termina o informa error.
  • El proceso deja de aceptar trabajo y libera recursos al cerrar.