What is Buffer.from() in Node.js?
The Buffer.from() function creates a new buffer and can be used in multiple ways.
Prototype 1
Explanation
The above prototype of the Buffer.from() function accepts an integer array that contains bytes in the range 0-255 and uses the bytes to create a buffer.
If the byte elements of the array lie outside the range 0-255, they are truncated to fit into the range.
Example
The following example demonstrates how to use an array to create a buffer with the Buffer.form(array) function.
//create an arrayconst array = [0x12, 0x23, 0x13, 0x45, 0x31]//creat the buffer using the arrayconst buf = Buffer.from(array)console.log(buf)
Prototype 2
Explanation
The above prototype of the Buffer.from() function accepts the following parameters:
arrayBuffer: AnArrayBufferor aSharedArrayBufferwith a.Bufferproperty.byteOffset: The byte from where the function starts to create the buffer.byteOffsetis set to0by default.length: The number of bytes to include in the buffer.lengthis set toarrayBuffer.byteLength - byteOffsetby default.
Note: The underlying array and the buffer share the same memory.
Example
The following example demonstrates how to use ArrayBuffer to create a buffer though the Buffer.from(arrayBuffer[, byteOffset[, length]]) function.
The program below shares memory with the underlying array. Therefore, when the array changes, the buffer changes as well. buf2 employs the byteoffset and length parameters to ensure that only the third element of the array is created in a buffer.
// create an ArrayBufferconst array = new Uint8Array(4);array[0] = 23;array[1] = 97;array[2] = 33;array[3] = 40;//create a buffer having a shared memory with the arrayconst buf = Buffer.from(array.buffer);console.log(buf);// change the arrayarray[1] = 145;// the buffer changes as wellconsole.log(buf);const buf2 = Buffer.from(array.buffer, 2,1);console.log(buf2);
Prototype 3
Explanation
This prototype of the Buffer.from() function accepts buffer of type Buffer or Uint8Array as a single input. Buffer.from() copies the data from the input to the created buffer.
Example
The following example demonstrates how to create a buffer using an existing buffer with the Buffer.from( buffer) function.
//create an arraconst array = [22, 33, 44, 55, 66]//create a bufferconst buf1 = Buffer.from(array)console.log(buf1)//create another buffer using an existing bufferconst buf2 = Buffer. from(buf1)console.log(buf2)
Prototype 4
Explanation
This prototype of the Buffer.from() function accepts the following parameters:
object: An object that supports theSymbol.toPrimitive()orValueOf()method.offsetOrEncoding: The byte offset of type integer, or an encoding of type string.length: The number of bytes to include in the buffer.
Example
The following example demonstrates how to create a buffer from objects that contain the Symbols.toPrimitive() or valueOf() method.
// create an object with Symbol.toPrimitive methodclass example {[Symbol.toPrimitive]() {return 'The example class has a Symbol.toPrimitive() method';}}const ex = new example()// create a buffer using the objectconst buf = Buffer.from( ex, 'utf8');console.log(buf)const str = "string has valuOf method"console.log(str.valueOf())// create a buffer using the object with valueOf methodconst buf1 = Buffer.from( ex, 'utf8');console.log(buf1)
Prototype 5
Explanation
This prototype of the Buffer.from() function accepts the following parameters:
string: The string that is encoded and made into a buffer.encoding: The encoding type, set toutf8by default.
Example
The following code demonstrates how to create a buffer from strings with the Buffer.from(string [, encoding]) function.
//encode with utf8const buf1 = Buffer.from('a buffer created from a string');//encode with hexconst buf2 = Buffer.from('2074c3a97374468697', 'hex');console.log(buf1)console.log(buf2)
Free Resources