Node.js puffer megmagyarázva

Mik azok a pufferek?

Binary egyszerűen egy sor, vagy egy gyűjtemény 1és 0. Minden bináris számot, egy halmaz 1 és 0 számát bitnek nevezzük . A számítógép átalakítja az adatokat erre a bináris formátumra a műveletek tárolásához és végrehajtásához. Például a következő öt különböző bináris fájl:

10, 01, 001, 1110, 00101011

A JavaScript fő API-jában nincsenek bájt típusú adatok. A bináris adatok kezelése A Node.js tartalmaz egy bináris puffer megvalósítást egy úgynevezett globális modullal Buffer.

Puffer létrehozása

Különféle módon hozhat létre puffert a Node.js fájlban. 10 bájt méretű üres puffert hozhat létre.

const buf1 = Buffer.alloc(10);

Az UTF-8 kódolású húrokból a létrehozás a következő:

const buf2 = Buffer.from('Hello World!');

A puffer létrehozásakor különböző elfogadott kódolások vannak:

  • ascii
  • utf-8
  • base64:
  • latin1
  • bináris
  • hatszög

Három külön funkció van elosztva a Buffer API-ban új pufferek használatához és létrehozásához. A fenti példákban láttuk alloc()és from(). A harmadik az allocUnsafe().

const buf3 = Buffer.allocUnsafe(10);

Visszatéréskor ez a funkció régi adatokat tartalmazhat, amelyeket felül kell írni.

Interakciók a pufferrel

Különböző interakciók hajthatók végre a Buffer API-val. A legtöbbjüket itt fogjuk lefedni. Kezdjük azzal, hogy egy puffert JSON-vá konvertálunk.

let bufferOne = Buffer.from('This is a buffer example.'); console.log(bufferOne); // Output:  let json = JSON.stringify(bufferOne); console.log(json); // Output: {"type": "Buffer", "data": [84,104,105,115,32,105,115,32,97,32,98,117,102,102,101,114,32,101,120,97,109,112,108,101,46]}

A JSON megadja, hogy az átalakítandó objektum típusa egy puffer, és annak adatai. Ha egy üres puffert JSON-vá konvertálunk, megmutatja, hogy az csak nullákat tartalmaz.

const emptyBuf = Buffer.alloc(10); emptyBuf.toJSON(); // Output: { "type": "Buffer", "data": [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ] }

Ne feledje, hogy a Buffer API egy közvetlen funkciót is biztosít toJSON()a puffer JSON objektummá alakításához. A puffer méretének vizsgálatához használhatunk lengthmetódust.

emptyBuf.length; // Output: 10

Most alakítsuk át a puffert olvasható stringgé, esetünkben az utf-8 kódolásúvá.

console.log(bufferOne.toString('utf8')); // Output: This is a buffer example.

.toString()alapértelmezés szerint a puffert utf-8 formátumú karakterlánnyá alakítja át. Így dekódol egy puffert. Ha kódolást ad meg, akkor a puffert más kódolássá alakíthatja

console.log(bufferOne.toString('base64'));

További információ a pufferekről:

  • Jobban meg kell ismernie a Node.js puffereit? Ezt nézd meg.