Buffers en Node.js: crear y transformar datos binarios
Clase 18 de 20 • Curso de Fundamentos de Node.js
Contenido del curso
Módulos y gestión de paquetes
Módulos nativos en Node.js
- 8

CRUD de archivos con Node.js fs
10:20 min - 9

Script Node.js fs y Whisper API
16:31 min - 10

Cómo implementar transcript audio con OpenAI
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

Node.js: módulo os para datos del sistema
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

Módulo timers en Node.js: setTimeout y setInterval
11:05 min - 17

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

Buffers en Node.js: crear y transformar datos binarios
Viendo ahora
Servidores con Node.js
Domina el manejo de datos binarios en Node.js con buffers: aprende a crearlos desde un string, reservar memoria con Buffer.alloc, escribir con write y convertir a texto con toString usando UTF-8 y rangos de índices. Ideal para flujos de entrada y salida donde necesitas transformar y leer información de forma precisa.
¿Qué es un buffer en Node.js y para qué sirve?
Un buffer es una estructura que permite trabajar con datos binarios y transformarlos a distintos formatos, como cadenas de texto. En Node.js, la clase Buffer facilita crear, escribir y leer estos datos, algo clave en I/O. Aquí verás cómo partir desde un archivo buffers.js, crear un buffer, modificarlo y extraer información con control de índices.
- Crea el archivo
buffers.jsen tu editor de código. - Opcional para orden: importa la clase con
require('buffer'). - Ejecuta cada paso con la opción run code del editor.
¿Cómo crear, escribir y leer buffers en JavaScript?
A continuación se muestra el flujo completo: crear desde un string, reservar memoria fija, escribir datos y convertir a texto con UTF-8.
¿Cómo crear un buffer desde un string con UTF-8?
Usa Buffer.from para convertir un string a buffer con un encoder específico.
// Opcional, para mantener orden en el llamado de la clase Buffer
const { Buffer } = require('buffer');
const bufferFromString = Buffer.from('hello world', 'utf-8');
console.log(bufferFromString);
Buffer.fromcrea un buffer a partir del string 'hello world'.- Se usa el encoder UTF-8 para la representación del texto.
- Al imprimir, verás la representación binaria lista para transformaciones.
¿Cómo reservar memoria con Buffer.alloc y escribir datos?
Buffer.alloc crea un buffer de tamaño fijo (en bytes). Luego, write permite escribir un string dentro de ese espacio.
const bufferAlloc = Buffer.alloc(10); // 10 bytes
console.log(bufferAlloc); // buffer vacío con 10 bytes asignados
bufferAlloc.write('node js');
console.log(bufferAlloc); // muestra el contenido escrito y el resto del espacio
- Se reservan 10 bytes; el buffer mantiene siempre ese tamaño.
write('node js')escribe el contenido dentro del espacio disponible.- El resto del contenido permanece en el buffer porque la memoria está asignada.
¿Cómo convertir un buffer a string con índices y encoding?
toString devuelve una cadena desde el buffer usando el encoder y rangos de lectura: índice inicial y final.
const bufferToString = bufferAlloc.toString('utf-8', 0, 6);
console.log(bufferToString); // "node j"
// Para leer todo el contenido disponible con el mismo encoder:
console.log(bufferAlloc.toString('utf-8'));
- Usa UTF-8 y controla los índices: inicio
0y fin6. - Cambia los rangos para extraer subcadenas, por ejemplo, del
4al7. - Si omites el índice final, lees todo el contenido del buffer.
Además de los pasos anteriores, aquí se integran las habilidades y conceptos que practicarás:
- Creación de buffers con
Buffer.fromy encoder UTF-8. - Reserva de memoria con
Buffer.allocy manejo de bytes fijos. - Escritura con
writey persistencia del tamaño del buffer. - Conversión a texto con
toStringusando índices de lectura. - Flujo de trabajo repetible: crear, escribir, leer y ajustar rangos.
¿Te animas a llevarlo a un proyecto práctico con buffers? Comparte tu avance en comentarios y, cuando lo tengas, envía tu pull request con la solución.