Simple Guide to Buffers in Node.js
A Buffer in Node.js is used to handle raw binary data, which is useful when working with streams, files, or network data.
How to Create Buffers
- From a String:
const buf = Buffer.from('Hello');
- Allocate a Buffer with a specific size:
const buf = Buffer.alloc(10); // 10-byte buffer filled with zeros
- From an Array of bytes:
const buf = Buffer.from([72, 101, 108, 108, 111]); // Represents 'Hello'
Important Buffer Functions
- Convert Buffer to String:
const buf = Buffer.from('Hello');
console.log(buf.toString()); // 'Hello'
- Get Buffer Length:
const buf = Buffer.from('Hello');
console.log(buf.length); // 5 (each character takes 1 byte)
- Write Data to Buffer:
const buf = Buffer.alloc(5);
buf.write('Hi');
console.log(buf.toString()); // 'Hi'
- Slice a Buffer:
const buf = Buffer.from('Hello World');
const slice = buf.slice(0, 5);
console.log(slice.toString()); // 'Hello'
- Copy from One Buffer to Another:
const buf1 = Buffer.from('Hello');
const buf2 = Buffer.alloc(5);
buf1.copy(buf2);
console.log(buf2.toString()); // 'Hello'
- Compare Two Buffers:
const buf1 = Buffer.from('abc');
const buf2 = Buffer.from('abc');
console.log(buf1.equals(buf2)); // true
- Concatenate Multiple Buffers:
const buf1 = Buffer.from('Hello');
const buf2 = Buffer.from(' World');
const buf3 = Buffer.concat([buf1, buf2]);
console.log(buf3.toString()); // 'Hello World'
These are the key Buffer functions you need to know to start working with binary data in Node.js:
- Create, write, and read Buffers
- Slice, copy, compare, and concatenate Buffers
This is enough to handle most beginner use cases in Node.js!