Ir al contenido
angel.library

Node.js es un runtime para ejecutar JavaScript fuera del navegador. Combina el motor V8 con APIs de sistema operativo para archivos, procesos, red, criptografía y streams. No es un framework backend ni incluye DOM.

código JavaScript
→ V8 ejecuta el lenguaje
→ Node expone APIs y coordina I/O
→ sistema operativo, red y filesystem

El modelo favorece servicios orientados a I/O (Input/Output o entrada/salida): mientras una consulta de red espera, el proceso puede atender otros callbacks. El trabajo intensivo de CPU sigue bloqueando el hilo de JavaScript si no se distribuye a workers o procesos.

Empieza en Primeros pasos. Después estudia package.json y módulos antes del event loop: primero necesitas saber cómo se crea y conecta un programa; luego, cómo se comporta al ejecutarse.

Para cada documento:

  1. ejecuta el ejemplo sin framework;
  2. identifica si el trabajo es síncrono, I/O asíncrono o CPU;
  3. provoca un error y observa cómo se propaga;
  4. añade timeout, límite y cierre donde aplique;
  5. explica qué mantiene vivo al proceso.
NecesitoDocumento
instalación, scripts y primer procesoPrimeros pasos
scripts, dependencias, exports y semverpackage.json
import, export, require y resoluciónCommonJS vs ESM
microtareas, timers, bloqueo y concurrenciaRuntime y event loop
promesas, cancelación y causasErrores asíncronos
leer/escribir y construir rutasFilesystem
bytes, UTF-8, base64 y memoriaBuffer
createServer, request y responseHTTP nativo
fetch, URL, headers y AbortSignalWeb APIs
configuración y secretosVariables de entorno
datos por partes y backpressureStreams
EventEmitter y ciclo de listenersEventos
señales, argumentos y cierre ordenadoProcess
CPU paralelaWorker threads
ejecutar programas y aislar procesosChild process
  1. Instalar Node, ejecutar archivos y usar scripts.
  2. Entender package.json, lockfile y dependencias.
  3. Elegir ES Modules o CommonJS y resolver imports.
  4. Reconocer globals, módulos node: y rutas de archivos.

Al terminar puedes crear una CLI pequeña y explicar cómo Node encuentra y ejecuta su entrada.

  1. Event loop, promesas, timers y microtareas.
  2. I/O frente a CPU y diferencia entre concurrencia y paralelismo.
  3. Propagación de errores, cancelación y timeouts.
  4. Límites de entrada y concurrencia.
  1. Filesystem y path.
  2. Buffer, encodings y datos binarios.
  3. Servidor HTTP nativo y Web APIs de cliente.
  4. Streams, pipeline y backpressure.
  5. EventEmitter y comunicación por eventos.
  1. Variables de entorno y configuración validada.
  2. Señales, estado del proceso y graceful shutdown.
  3. Worker threads para CPU y child processes para programas externos.
  4. Logging, observabilidad, seguridad y pruebas del servicio.
  5. Frameworks como Express después de reconocer qué abstracciones añaden.
TérminoSignificado
runtimeentorno que ejecuta JavaScript y ofrece APIs adicionales
event loopcoordinador que entrega callbacks listos al hilo de JavaScript
I/Oentrada/salida: red, archivos o comunicación externa
CPU-boundtrabajo cuyo límite principal es el cálculo del procesador
Bufferregión de bytes en memoria
streaminterfaz para procesar datos por partes
backpressureseñal para frenar al productor cuando el consumidor no alcanza
workerhilo o proceso que ejecuta trabajo separado del flujo principal
graceful shutdowncierre que deja de aceptar trabajo y libera recursos de forma ordenada

Node ofrece fetch, URL, AbortController, process, filesystem y red. No ofrece routing de aplicación, validación de contratos, autenticación, ORM ni arquitectura. Express agrega una cadena de routing/middleware; Astro y Next.js integran servidor con un framework web. Aprender Node evita tratar esas capas como magia.

Todo recurso debe tener ciclo de vida: creación, uso, error, cancelación y cierre. Todo input necesita límite y validación. Toda dependencia remota necesita timeout. Esta regla conecta los módulos nativos con un backend mantenible.