Objašnjen Node.js međuspremnik

Što su odbojnici?

Binarni je jednostavno skup ili zbirka 1i 0. Svaki broj u binarnom sustavu, svaki 1 i 0 u skupu nazivaju se bit . Računalo pretvara podatke u ovaj binarni format za pohranu i izvođenje operacija. Na primjer, slijedi pet različitih binarnih datoteka:

10, 01, 001, 1110, 00101011

JavaScript u svom osnovnom API-ju nema podatke tipa bajta. Za rukovanje binarnim podacima Node.js uključuje implementaciju binarnog međuspremnika s globalnim modulom tzv Buffer.

Stvaranje međuspremnika

Postoje različiti načini na koje možete stvoriti međuspremnik u Node.js. Možete stvoriti prazan međuspremnik veličine 10 bajtova.

const buf1 = Buffer.alloc(10);

Iz nizova kodiranih UTF-8, stvaranje je ovako:

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

Prilikom izrade međuspremnika postoje različita prihvaćena kodiranja:

  • ascii
  • utf-8
  • base64:
  • latin1
  • binarni
  • hex

U API-ju međuspremnika dodijeljene su tri odvojene funkcije za upotrebu i stvaranje novih međuspremnika. U gornjim primjerima vidjeli smo alloc()i from(). Treći je allocUnsafe().

const buf3 = Buffer.allocUnsafe(10);

Kad se vrati, ova funkcija može sadržavati stare podatke koje treba prebrisati.

Interakcije s puferom

Postoje različite interakcije koje se mogu ostvariti s API-jem pufera. Većinu ćemo ih ovdje pokriti. Počnimo s pretvaranjem međuspremnika u JSON.

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]}

JSON navodi da je vrsta objekta koji se transformira Buffer i njegovi podaci. Pretvaranje praznog međuspremnika u JSON pokazat će nam da ne sadrži ništa osim nula.

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

Primijetite da Buffer API također nudi izravnu funkciju toJSON()za pretvorbu međuspremnika u JSON objekt. Da bismo ispitali veličinu međuspremnika, možemo koristiti lengthmetodu.

emptyBuf.length; // Output: 10

Sada pretvorimo međuspremnik u čitljiv niz, u našem slučaju kodiran u utf-8.

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

.toString()prema zadanim postavkama pretvara međuspremnik u niz formata utf-8. Na ovaj način dekodirate međuspremnik. Ako navedete kodiranje, možete pretvoriti međuspremnik u drugo kodiranje

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

Više informacija o odbojnicima:

  • Trebate bolje razumijevanje međuspremnika u Node.js? Pogledaj ovo.