Inicio > Cursos > Node.js y Express > Node.js y el Event Loop
Node.js y ExpressNode.js CoreLección 1 de 20

Node.js y el Event Loop

Node.js permite ejecutar JavaScript fuera del navegador, directamente en tu computadora o servidor. Fue creado en 2009 por Ryan Dahl y cambió completamente el desarrollo web: por primera vez podías usar el mismo lenguaje tanto en el frontend como en el backend.

A diferencia de lenguajes como PHP o Java que crean un nuevo hilo por cada petición, Node usa un solo hilo con un modelo non-blocking I/O. Esto significa que mientras espera una respuesta de base de datos o del sistema de archivos, puede atender otras peticiones en paralelo, haciéndolo extremadamente eficiente para apps con muchas conexiones simultáneas como chats, APIs o dashboards en tiempo real.

El Event Loop es el mecanismo central que hace posible esta asincronía. Funciona como un director de orquesta: revisa continuamente si hay tareas pendientes (timers que expiraron, respuestas de I/O que llegaron) y las ejecuta. libuv es la librería escrita en C++ que implementa este loop y permite a Node interactuar con el sistema operativo sin bloquear.

// CommonJS (require) — formato tradicional de Node.js
const fs = require('fs');
const path = require('path');

// process.env accede a variables de entorno
const PORT = process.env.PORT || 3000;
const NODE_ENV = process.env.NODE_ENV || 'development';
console.log(`Ambiente: ${NODE_ENV}, Puerto: ${PORT}`);

// Demo del event loop — orden de ejecución
console.log('1 - Sincrónico');

setTimeout(() => console.log('3 - setTimeout (macro-task)'), 0);

Promise.resolve().then(() => console.log('2 - Promise (micro-task)'));

setImmediate(() => console.log('4 - setImmediate'));

// Output: 1, 2, 3, 4
// Las micro-tasks (Promises) van ANTES que los macro-tasks (setTimeout)
ConsejoNode.js NO es multi-thread para tu código, pero libuv usa un thread pool para I/O pesado (lectura de archivos, criptografía). El event loop nunca se bloquea esperando I/O.
Módulos y Sistema de Archivos →

Practica esta lección

Resuelve los ejercicios del curso de Node.js y Express en la app, gratis y con corrección automática.

Empezar a practicar