Biblioteca estándar de JavaScript (Node.js): una visió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 de Google. A diferencia de JavaScript en el navegador, Node.js ofrece una potente biblioteca estándar incorporada que permite trabajar con el sistema de archivos, la red, flujos de datos, criptografía y mucho más. En este artículo, examinaremos en detalle los módulos clave de la biblioteca estándar de Node.js que son esenciales para todo desarrollador.



1. Módulo fs (File System)

El módulo fs proporciona una API para interactuar con el sistema de archivos. Soporta operaciones tanto síncronas como asíncronas.



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

// Lectura asíncronafs.readFile('example.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data);});

// Lectura síncronaconst data = fs.readFileSync('example.txt', 'utf8');console.log(data);


  • Escritura en archivo:
const fs = require('fs');

fs.writeFile('output.txt', '¡Hola, mundo!', (err) => { if (err) throw err; console.log('Archivo guardado');});


El módulo también soporta trabajar con directorios, flujos y permisos de acceso.



2. Módulo path (Trabajo con rutas)

El módulo path simplifica las manipulaciones con rutas de archivos y garantiza la compatibilidad multiplataforma.



const path = require('path');

const fullPath = '/users/docs/file.txt';console.log(path.dirname(fullPath)); // /users/docsconsole.log(path.basename(fullPath)); // file.txtconsole.log(path.extname(fullPath)); // .txt

// Construcción de rutaconst newPath = path.join('/users', 'docs', 'file.txt');console.log(newPath); // /users/docs/file.txt


3. Módulo http (Servidor y cliente HTTP)

Con http se pueden crear servidores web y enviar solicitudes HTTP sin bibliotecas externas.



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

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

server.listen(3000, () => { console.log('Servidor iniciado en el puerto 3000');});


  • Solicitud HTTP (cliente):
const http = require('http');

http.get('http://api.example.com/data', (res) => { let data = ''; res.on('data', chunk => data += chunk); res.on('end', () => console.log(data));});


4. Módulo stream (Flujos de datos)

Los flujos permiten procesar grandes volúmenes de datos por partes, sin cargarlos completamente en la memoria. Node.js soporta cuatro tipos de flujos: Readable, Writable, Duplex y Transform.



const fs = require('fs');const zlib = require('zlib');

// Lectura de archivo, compresión y escrituraconst readStream = fs.createReadStream('input.txt');const writeStream = fs.createWriteStream('output.txt.gz');const gzip = zlib.createGzip();

readStream.pipe(gzip).pipe(writeStream);


5. Módulo crypto (Criptografía)

El módulo crypto proporciona funcionalidad para hash, cifrado y generación de números aleatorios.



const crypto = require('crypto');

// Hash de contraseñaconst hash = crypto.createHash('sha256').update('myPassword123').digest('hex');console.log(hash);

// Generación de bytes aleatorioscrypto.randomBytes(16, (err, buffer) => { console.log(buffer.toString('hex'));});


6. Módulo events (Eventos)

Muchos objetos en Node.js (por ejemplo, flujos, servidores) heredan de EventEmitter. Este módulo permite crear eventos personalizados.

Recommendations