To combine Buffer instances in Node.js, we can use the concat() method in the Buffer class.
Let's say we have 3 Buffer instances with 10 bytes of memory allocated like this,
// Buffer 1
const buff1 = Buffer.alloc(10);
// Buffer 2
const buff2 = Buffer.alloc(10);
// Buffer 3
const buff3 = Buffer.alloc(10);
Now we need to combine these buffers into a single buffer.
-
The
concat()method requires 2 arguments, the first one being an array of buffer instances that we want to combine and the second argument being the total bytes of the combined buffer instances. -
To get the total bytes of a buffer instance we can use the
lengthproperty available int the buffer instance.
// Buffer 1
const buff1 = Buffer.alloc(10);
// Buffer 2
const buff2 = Buffer.alloc(10);
// Buffer 3
const buff3 = Buffer.alloc(10);
// get the total bytes
const totalBytes = buff1.length + buff2.length + buff3.length;
Now let's combine these instances using the concat() method to combine these buffers into a single buffer like this,
// Buffer 1
const buff1 = Buffer.alloc(10);
// Buffer 2
const buff2 = Buffer.alloc(10);
// Buffer 3
const buff3 = Buffer.alloc(10);
// get the total bytes
const totalBytes = buff1.length + buff2.length + buff3.length;
// pass buffers an an array as the first argument
// total bytes as the second argument
const resultBuffer = Buffer.concat([buff1, buff2, buff3], totalBytes);
- The
concat()method returns a new combined buffer instance.