Nodejs buffers

From wikinotes
Revision as of 02:24, 6 August 2021 by Will (talk | contribs) (→‎Basics)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Buffers are reserved sections of memory designed to store binary data.
Interact with it like an array of bytes.

Documentation

buffer docs https://nodejs.org/api/buffer.html
buffer tutorial https://nodejs.dev/learn/nodejs-buffers

Basics

Buffers are fixed size, reserved sections of memory.

  • alloc() reserves memory, initializing every byte with a 0
  • allocUnsafe() only reserves memory (faster).

By default, buffers are are stored as a UTF-8 array of bytes.
buffer.toString() converts the buffer to a UTF-8 string.

import { Buffer } from 'buffer';

// allocate buffer
const buf = Buffer.alloc(10);
const buf = Buffer.allocUnsafe(10);

// write
buf.write("abc");

// read
buf[0];                       // byte at pos 0
buf.toString()                // print buf as UTF-8

write

buf.fromString("abc");  // from UTF-8 string
buf.write("abc");       // from UTF-8 string

read

// read buffer
buf[0];                       // byte at pos 0
buf.toString()                // print buf as UTF-8
for (cont ch in buf) { ... }  // loop over bytes in buffer

manipulate

buf.subarray(0, 2);          // slice of bytes 0-2
buf.set(Buffer.from('foo')); // copy