Necesitas módulos, promesas y manejo de errores de JavaScript. Angular no es requisito para comenzar Node.js.
Avanza en orden. Cada lección está redactada para Palta es Cool, utiliza ejemplos propios y termina con una actividad cuya respuesta puedes desplegar.
Ubícate antes de avanzar
Al terminar deberías poder relacionar Runtime y módulos con Archivos y streams y resolver un caso nuevo.
Reserva entre 75 y 120 minutos o divide el laboratorio en dos sesiones.
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.
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.
- 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
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.
No confundas asincronía con ausencia de costo.
Evita operaciones sync en rutas concurrentes.
Maneja apagado y recursos abiertos.
¿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.
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.
Usa node: para módulos incorporados.
No leas process.env por toda la aplicación: valida configuración al inicio.
Distingue dependencia de desarrollo y ejecución.
¿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.
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.
No confíes en rutas construidas desde entrada externa.
Usa streams para archivos grandes.
Define límites de tiempo y tamaño.
¿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.
Tu recorrido en tres ideas
- 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
Comprueba que puedes usarlo
Antes de continuar, revisa estos tropiezos frecuentes y resuelve un caso sin copiar los ejemplos.
Bloquear el event loop con CPU o archivos síncronos dentro de solicitudes.
Leer variables de entorno dispersas sin validarlas.
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 +
- La memoria permanece acotada.
- Toda respuesta termina o informa error.
- El proceso deja de aceptar trabajo y libera recursos al cerrar.
