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 length
metó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.