V8 ejecuta funciones y callbacks en el hilo principal. Node añade APIs para recursos externos. Cada archivo principal inicia un proceso con memoria, argumentos, permisos y código de salida.
El código actual termina antes de comenzar otra callback en el mismo hilo. I/O puede delegarse al sistema operativo o thread pool; CPU-bound permanece bloqueando salvo que se mueva explícitamente.
Node moderno puede retirar sintaxis de tipos y ejecutar .ts compatible. tsc sigue siendo responsable de comprobar contratos, generar declaraciones y transformar sintaxis que produce JavaScript.
Texto
node archivo.ts → ejecución mediante type stripping
tsc --noEmit → comprobación estática
Los tipos no validan input externo y los aliases de tsconfig no cambian automáticamente la resolución de Node.
Request y response son streams sobre conexiones. Routing, JSON y middleware son capas posteriores. Express abstrae esas tareas, pero timeouts, bodies, abort y sockets siguen siendo responsabilidad del sistema.
El event loop permite progresar en varias operaciones I/O. Workers y procesos utilizan cores adicionales con costos de memoria, mensajes y coordinación.
Clasifica errores, añade contexto, usa timeouts y libera recursos. Un error no controlado que rompe invariants requiere cierre seguro y reinicio, no continuar fingiendo normalidad.
Valida y autoriza inputs, pero también limita CPU, memoria, conexiones, paths, comandos y destinos de red. El proceso debe operar con permisos mínimos.
Logs explican eventos, métricas muestran tendencias y traces conectan recorridos. Startup, readiness, shutdown y rollback son rutas que deben probarse.
JavaScript
→ lenguaje, valores, funciones, promesas y módulos
TypeScript
→ contratos estáticos que desaparecen antes del runtime
Node.js
→ ejecución como servidor, herramienta y proceso del sistema
Express
→ routing, middleware y construcción de aplicaciones HTTP sobre Node
Docker
→ empaquetado y aislamiento del proceso
Architecture
→ límites entre servicios, datos, resiliencia y despliegue
Node.js debe explicar la mecánica necesaria, no duplicar cursos completos de esas capas.
qué ejecuta el proceso
→ qué trabajo bloquea
→ qué trabajo se delega
→ cómo circulan los datos
→ cómo se gestionan recursos
→ cómo falla la aplicación
→ cómo se observa
→ cómo se apaga correctamente
Cuando puedes responder esa cadena, una API nueva deja de ser una lista para memorizar y se convierte en otra pieza del mismo modelo.