Biblioteca estándar de JavaScript (Node.js): revisión completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Biblioteca estándar de JavaScript (Node.js): revisión completa



Node.js es un entorno de ejecución de JavaScript, construido sobre el motor V8. Una de sus principales ventajas es la rica biblioteca estándar, que proporciona cientos de módulos listos para resolver tareas cotidianas del desarrollo backend: desde trabajar con el sistema de archivos hasta crear servidores HTTP. En este artículo, revisaremos los módulos clave, sus capacidades y proporcionaremos ejemplos prácticos de código.



1. Módulo fs (File System)

El módulo fs es la base para trabajar con archivos y directorios. Soporta operaciones tanto síncronas como asíncronas.

  • Lectura de archivo (asíncrona):
const fs = require('fs');

fs.readFile('example.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data);});
  • Escritura en archivo:
fs.writeFile('output.txt', '¡Hola, Node.js!', (err) => {    if (err) throw err;    console.log('Archivo guardado');});
  • Trabajo con directorios (creación, eliminación, lectura):
// Crear carpetafs.mkdir('newDir', { recursive: true }, (err) => {    if (err) throw err;    console.log('Carpeta creada');});

// Leer contenido de la carpetafs.readdir('.', (err, files) => { console.log(files); // array de nombres de archivos});


2. Módulo path

El módulo path simplifica el trabajo con rutas de archivos y carpetas, independientemente del sistema operativo.

  • Unión de rutas:
const path = require('path');

const fullPath = path.join('users', 'admin', 'docs', 'file.txt');console.log(fullPath); // users/admin/docs/file.txt (en Linux) o users\\admin\\docs\\file.txt (en Windows)
  • Obtener la extensión del archivo:
const ext = path.extname('image.png');console.log(ext); // '.png'
  • Normalización de ruta (elimina los «..» y «.» sobrantes):
const normalized = path.normalize('/foo/bar//baz/asdf/quux/..');console.log(normalized); // /foo/bar/baz/asdf


3. Módulo http

Permite crear servidores y clientes HTTP. En este módulo se basan frameworks como Express.js.

  • Servidor HTTP simple:
const http = require('http');

const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('¡Hola, mundo!');});

server.listen(3000, () => { console.log('Servidor iniciado en el puerto 3000');});
  • Cliente HTTP (haciendo una solicitud GET):
http.get('http://jsonplaceholder.typicode.com/posts/1', (res) => {    let data = '';    res.on('data', chunk => data += chunk);    res.on('end', () => console.log(JSON.parse(data)));});


4. Módulo events

Implementa el patrón «Observador» (EventEmitter). Permite crear eventos personalizados y suscribirse a ellos.

const EventEmitter = require('events');

class MyEmitter extends EventEmitter {}

const myEmitter = new MyEmitter();

// Suscripción al eventomyEmitter.on('greet', (name) => { console.log(`¡Hola, ${name}!`);});

// Generación del eventomyEmitter.emit('greet', 'Alejandro'); // ¡Hola, Alejandro!


5. Módulo buffer

Buffer es un almacenamiento temporal para datos binarios. Se utiliza al trabajar con flujos, archivos, protocolos de red.

// Creación de un buffer a partir de una cadenaconst buf = Buffer.from('Hola', 'utf8');console.log(buf); // <Buffer 48 6f 6c 61>

// Concatenación de buffersconst buf1 = Buffer.from('Node');const buf2

Recommendations