Node.js
Qué estás estudiando
Sección titulada «Qué estás estudiando»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 filesystemEl 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.
Elige tu modo de entrada
Sección titulada «Elige tu modo de entrada»Quiero aprender desde cero
Sección titulada «Quiero aprender desde cero»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:
- ejecuta el ejemplo sin framework;
- identifica si el trabajo es síncrono, I/O asíncrono o CPU;
- provoca un error y observa cómo se propaga;
- añade timeout, límite y cierre donde aplique;
- explica qué mantiene vivo al proceso.
Ya uso Node y quiero recordar
Sección titulada «Ya uso Node y quiero recordar»| Necesito | Documento |
|---|---|
| instalación, scripts y primer proceso | Primeros pasos |
| scripts, dependencias, exports y semver | package.json |
import, export, require y resolución | CommonJS vs ESM |
| microtareas, timers, bloqueo y concurrencia | Runtime y event loop |
| promesas, cancelación y causas | Errores asíncronos |
| leer/escribir y construir rutas | Filesystem |
| bytes, UTF-8, base64 y memoria | Buffer |
createServer, request y response | HTTP nativo |
fetch, URL, headers y AbortSignal | Web APIs |
| configuración y secretos | Variables de entorno |
| datos por partes y backpressure | Streams |
| EventEmitter y ciclo de listeners | Eventos |
| señales, argumentos y cierre ordenado | Process |
| CPU paralela | Worker threads |
| ejecutar programas y aislar procesos | Child process |
Curva de aprendizaje
Sección titulada «Curva de aprendizaje»Etapa 1: programa y módulos
Sección titulada «Etapa 1: programa y módulos»- Instalar Node, ejecutar archivos y usar scripts.
- Entender
package.json, lockfile y dependencias. - Elegir ES Modules o CommonJS y resolver imports.
- 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.
Etapa 2: asincronía y fallos
Sección titulada «Etapa 2: asincronía y fallos»- Event loop, promesas, timers y microtareas.
- I/O frente a CPU y diferencia entre concurrencia y paralelismo.
- Propagación de errores, cancelación y timeouts.
- Límites de entrada y concurrencia.
Etapa 3: datos y red
Sección titulada «Etapa 3: datos y red»- Filesystem y
path. - Buffer, encodings y datos binarios.
- Servidor HTTP nativo y Web APIs de cliente.
- Streams, pipeline y backpressure.
- EventEmitter y comunicación por eventos.
Etapa 4: proceso y operación
Sección titulada «Etapa 4: proceso y operación»- Variables de entorno y configuración validada.
- Señales, estado del proceso y graceful shutdown.
- Worker threads para CPU y child processes para programas externos.
- Logging, observabilidad, seguridad y pruebas del servicio.
- Frameworks como Express después de reconocer qué abstracciones añaden.
Glosario mínimo
Sección titulada «Glosario mínimo»| Término | Significado |
|---|---|
| runtime | entorno que ejecuta JavaScript y ofrece APIs adicionales |
| event loop | coordinador que entrega callbacks listos al hilo de JavaScript |
| I/O | entrada/salida: red, archivos o comunicación externa |
| CPU-bound | trabajo cuyo límite principal es el cálculo del procesador |
| Buffer | región de bytes en memoria |
| stream | interfaz para procesar datos por partes |
| backpressure | señal para frenar al productor cuando el consumidor no alcanza |
| worker | hilo o proceso que ejecuta trabajo separado del flujo principal |
| graceful shutdown | cierre que deja de aceptar trabajo y libera recursos de forma ordenada |
Qué Node incluye y qué no
Sección titulada «Qué Node incluye y qué no»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.
Regla operativa
Sección titulada «Regla operativa»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.