Andres Burbano
Yo no veo los recursos que menciona Oscar en la clase ?
Trabajar con buffers en Node.js te permite manipular datos binarios directamente desde memoria, algo esencial cuando manejas flujos de entrada y salida, archivos o cadenas que necesitan transformarse a otros formatos. Aquí verás cómo crearlos, escribir dentro de ellos y leerlos como texto.
¿Qué es un buffer en Node.js y para qué sirve?
Un buffer es una estructura nativa de Node.js que reserva un espacio fijo en memoria para almacenar datos binarios. Lo usas cuando necesitas leer archivos, recibir datos de la red o transformar cadenas de texto a su representación binaria.
¿Qué es un buffer? Es una región de memoria de tamaño fijo que guarda datos binarios crudos. En Node.js lo manejas con la clase
Buffer, que te deja crear, escribir, leer y convertir esa información.
Aunque la clase Buffer está disponible globalmente, puedes importarla para mantener orden en tu código:
js const { Buffer } = require('buffer');
¿Cómo crear un buffer desde una cadena de texto?
La forma más directa de empezar es convertir un string en buffer usando Buffer.from. Le pasas la cadena y el encoding que quieres aplicar, normalmente UTF-8.
js const bufferFromString = Buffer.from('Hello, world!', 'utf-8'); console.log(bufferFromString);
Al ejecutar este código verás la cadena convertida en una secuencia de bytes hexadecimales. Esa es la representación binaria que Node.js puede mover entre procesos, archivos o conexiones sin perder información.
¿Cómo reservar un buffer vacío con tamaño fijo?
Cuando todavía no tienes los datos pero sabes cuánto espacio vas a necesitar, usas Buffer.alloc. Le indicas la cantidad de bytes y obtienes un buffer inicializado en ceros.
js const bufferAlloc = Buffer.alloc(10); console.log(bufferAlloc);
El resultado es un buffer de 10 bytes vacíos, listo para que escribas dentro de él. Esto es útil cuando vas a recibir datos por partes, por ejemplo desde un stream.
¿Cómo escribir y leer datos dentro de un buffer?
Una vez reservado el espacio, puedes escribir contenido con el método write. El buffer mantiene su tamaño original, así que los bytes que no escribas seguirán en cero.
js bufferAlloc.write('Node.js'); console.log(bufferAlloc);
Aquí pasa algo interesante: aunque escribiste solo 7 caracteres, el buffer sigue ocupando 10 bytes. Los tres bytes restantes permanecen vacíos, porque el tamaño del buffer es inmutable una vez creado.
¿Qué hace Buffer.alloc en Node.js? Reserva en memoria un buffer del tamaño exacto que le indicas, inicializado en ceros. Sirve cuando vas a llenarlo después con datos que llegan por partes.
¿Cómo convertir un buffer a string con encoding e índices?
Para leer el contenido como texto usas toString, indicando el encoding y opcionalmente el rango de bytes que quieres extraer.
js const bufferToString = bufferAlloc.toString('utf-8', 0, 6); console.log(bufferToString);
En este ejemplo, el 0 es el índice inicial y el 6 el índice final. Eso significa que solo obtienes los primeros 6 caracteres del buffer, devolviendo Node.j. Si amplías el rango o lo dejas sin límites, recuperas toda la cadena escrita.
Puedes jugar con esos índices para extraer fragmentos específicos: del 4 al 7, del 0 al 10, etc. Es una forma rápida de parsear porciones binarias sin convertir todo el contenido.
Habilidades y conceptos que practicas con buffers
Al trabajar este flujo desarrollas varias habilidades técnicas que aparecen seguido en proyectos reales con Node.js:
Estas operaciones son la base para luego trabajar con streams, archivos y protocolos de red, donde la información casi nunca llega como texto plano.
Si ya probaste estos ejemplos, cuéntame en los comentarios qué transformaciones lograste hacer con tu propio buffer y comparte el enlace de tu pull request cuando termines el reto.
Andres Burbano
Yo no veo los recursos que menciona Oscar en la clase ?
Angel Antonio Vilchis Rodríguez
Quiz: Módulos nativos en Node.js: No me deja hacer este Quiz, y me redirije al Home 😢
Angel Antonio Vilchis Rodríguez
https://platzi.com/clases/quiz/22578/ no me deja entrar a este quiz
Maria Camila Uribe Rodriguez
// no es necesario la importación const buffer = require('buffer'); const bufferFromString = Buffer.from('Hello World', 'utf8'); console.log(bufferFromString); // crear un buffer de un tamaño especifico const bufferAlloc = Buffer.alloc(10); console.log(bufferAlloc); // Escribir datos dentro de un bloque bufferAlloc.write('node.js'); console.log(bufferAlloc); // Leer los datos de buffer y convertirlo en cadena const buffertoString = bufferAlloc.toString('utf8', 3, 6); console.log(buffertoString);