Contenido del curso
Módulos y gestión de paquetes
Módulos nativos en Node.js
- 8

CRUD de archivos con módulo fs
10:20 min - 9

Transcribir audio a texto con Whisper y Node.js
16:31 min - 10

Implementar transcriptAudio con Whisper en Node.js
06:28 min - 11

Console API en Node.js: métodos básicos
10:22 min - 12

Console.count y console.group en JavaScript
09:16 min - 13

Módulo OS de Node.js para monitoreo
04:57 min - 14

Crypto de Node.js: hash SHA-256 completo
05:41 min - 15

Módulo process de Node.js en detalle
17:04 min - 16

Timers en Node.js: setTimeout y setInterval
11:04 min - 17

Streams en Node.js para archivos grandes
10:47 min - 18

Manipulación de buffers binarios en Node.js
06:43 min
Servidores con Node.js
Servidor HTTP en Node.js con flag watch
Resumen
Crear un servidor HTTP en Node.js es uno de los primeros pasos para entender cómo funcionan las aplicaciones web del lado del backend. Con el módulo nativo http puedes levantar un server, responder peticiones y escuchar en un puerto sin instalar dependencias externas, ideal si estás aprendiendo a construir APIs desde cero.
¿Qué hace el módulo http de Node.js?
El módulo http viene incluido en Node.js y te permite crear tanto servidores como clientes que se comuniquen mediante el protocolo HTTP. No necesitas instalar nada extra, solo importarlo con require.
¿Qué es el módulo http en Node.js? Es un módulo nativo que permite crear servidores y clientes HTTP. Lo importas con
const http = require('http')y te da acceso a métodos comocreateServerpara responder peticiones [0:08].
¿Cómo se estructura un server básico?
La receta mínima para tener un servidor funcional usa http.createServer, que recibe una función con dos parámetros: request y response. Dentro defines qué responder cuando alguien llegue a tu endpoint.
javascript const http = require('http');
const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World'); });
server.listen(3000, 'localhost', () => { console.log('Server running'); });
Aquí pasan tres cosas clave:
res.writeHead(200, ...)envía el status code 200 y define elContent-Typecomotext/plain[0:34].res.end('Hello World')cierra la respuesta enviando el texto al cliente [0:50].server.listen(3000, 'localhost', ...)deja al servidor escuchando en el puerto 3000 [1:00].
¿Por qué localhost a veces no funciona y aparece not found?
Cuando ejecutas el server y abres localhost:3000 en el navegador, puede aparecer un error not found. Esto ocurre porque, dependiendo de cómo configures el listen, Node puede estar escuchando en 127.0.0.1 y no reconocer el alias localhost directamente [1:40].
La solución es pasar explícitamente 'localhost' como segundo argumento de server.listen, o bien acceder directamente con la IP 127.0.0.1:3000. Ambas rutas apuntan al mismo lugar, pero el navegador necesita coincidencia exacta con lo que el server declara.
¿Cuál es la diferencia entre localhost y 127.0.0.1? Ambas referencian tu máquina local, pero
localhostes un nombre de host y127.0.0.1es la dirección IP. Node escucha en una u otra según cómo configureslisten.
¿Cómo recargar el servidor automáticamente con el flag watch?
Durante años, los desarrolladores de Node usaron Nodemon para reiniciar el server cada vez que guardaban un cambio. Desde la versión 18 de Node.js, esto ya no es necesario: existe el flag --watch, que entró como beta y escucha modificaciones en tu script para reejecutarlo automáticamente [2:10].
Para usarlo solo necesitas correr:
bash node --watch server.js
Puedes verificar tu versión de Node con node -v. Si tienes la 18 o superior (en la clase se usa la 23), tienes acceso al flag sin instalar nada [2:30].
¿Qué ventaja tiene watch frente a Nodemon?
La diferencia práctica es que ya no dependes de un paquete externo:
- No necesitas instalar Nodemon vía npm.
- No agregas dependencias a tu
package.json. - El comportamiento es nativo y mantenido por el equipo de Node.
Cada vez que guardas un cambio, por ejemplo modificar el texto Hello World, el server se reinicia solo y refrescas el navegador para ver el resultado [3:20]. Te olvidas del clásico Ctrl+C para matar el proceso y volver a levantarlo.
¿Cuándo conviene usar http puro y cuándo Express.js?
El módulo http es perfecto para entender los fundamentos: cómo se forma una respuesta, qué es un status code, cómo se define un Content-Type. Pero cuando empiezas a construir APIs con varias rutas, middlewares y manejo de errores, escribir todo a mano se vuelve tedioso.
Ahí entra Express.js, un framework que se monta sobre el módulo http y te da una sintaxis mucho más amigable para definir endpoints, manejar parámetros y organizar tu código. No reemplaza a HTTP, lo encapsula.
¿Express.js sustituye al módulo http? No. Express usa internamente el módulo
httpde Node, pero te ofrece una API más sencilla para crear rutas, middlewares y respuestas estructuradas.
Dominar primero el módulo nativo te da contexto sobre qué hace Express por debajo. Después, mover tu lógica a un framework se vuelve natural.
¿Ya probaste levantar tu primer server con node --watch? Cuéntame en los comentarios qué cambio harías a este ejemplo para responder JSON en lugar de texto plano.