Jak zkopírovat, porovnat a zřetězit vyrovnávací paměť v Node.js?

Jak Zkopirovat Porovnat A Zretezit Vyrovnavaci Pamet V Node Js



Buffer je soubor binárních dat, která jsou dočasně uložena v určité paměti. Jeho hlavním účelem je spravovat a přenášet uložená binární data z jednoho místa na druhé. V Node.js může uživatel přistupovat k této konkrétní paměti pomocí vestavěného modulu „Buffer“.

Buffer je více podobný JavaScriptovému „pole“, ale s jedním rozdílem, tj. jeho velikost nelze po nastavení změnit. Společnými vlastnostmi tohoto modulu jsou zápis, čtení, porovnávání, kopírování, převod a mnoho dalších. Všechny uvedené operace lze provádět pomocí vestavěných metod a vlastností.

Tento blog poskytne stručný popis kopírování, porovnávání a zřetězení vyrovnávací paměti v Node.js.







Začněme operací „kopírování“.



Jak zkopírovat vyrovnávací paměť v Node.js?

' Buffer.copy() ” metoda umožňuje uživatelům kopírovat jeden objekt vyrovnávací paměti do druhého. Tato metoda jako výsledek vrátí nově aktualizovanou vyrovnávací paměť. Fungování této metody závisí na její následující syntaxi:



buf. kopírovat ( targetBuffer [ , targetStart ] [ , sourceStart ] [ , zdrojKonec ] )

Podle výše uvedené syntaxe metoda „copy()“ plní následující parametry:





  • targetBuffer : Určuje objekt Buffer, jehož obsah je třeba zkopírovat do jiného objektu bufferu.
  • targetStart : Označuje pozici, kde se spustí operace kopírování. Jeho výchozí hodnota je „0“.
  • sourceStart : Označuje pozici, kde začne operace kopírování. Jeho výchozí hodnota je „0“.
  • zdrojKonec : Představuje koncovou pozici, kde se operace kopírování zastaví. Jeho výchozí hodnota je „konec vyrovnávací paměti“.

Následující blok kódu ukazuje praktickou implementaci metody „copy()“:

byl buf1 = Buffer. z ( '123' ) ;
byl buf2 = Buffer. alloc ( 3 ) ;
buf1. kopírovat ( buf2 ) ;
řídicí panel. log ( 'Obsah Buffer2 je:' + buf2. toString ( ) ) ;

Ve výše uvedených řádcích kódu:



  • ' z() ” vytvoří objekt vyrovnávací paměti se zadanými celými čísly.
  • ' alloc() ” metoda vytváří objekt bufferu s přidělenou velikostí.
  • ' kopírovat() ” zkopíruje již existující obsah prvního bufferu do druhého objektu bufferu.
  • ' toString() ” metoda dekóduje zkopírovaný obsah do formátu řetězce (čitelný pro člověka) a poté jej zobrazí v konzole pomocí „ console.log() “ metoda.

Výstup
Spusťte daný příkaz pro spuštění souboru „.js“:

aplikace uzlu. js

Je vidět, že obsah jednoho bufferu byl zkopírován do druhého bufferu:

Jak porovnat vyrovnávací paměť v Node.js?

Chcete-li porovnat vyrovnávací paměť v Node.js, použijte vestavěný „ Buffer.compare() “ metoda. Tato metoda porovnává dvě vyrovnávací paměti a jako standardní výstup vrací číselnou hodnotu, která zobrazuje definované rozdíly. Tyto číselné hodnoty jsou uvedeny níže spolu s jejich definovanými rozdíly:

  • 0 : Vyrovnávací paměti jsou stejné.
  • 1 : Buffer 1 je větší než Buffer 2.
  • -1 : Buffer 1 je nižší než Buffer 2.

Syntax

buf. porovnat ( otherBuffer ) ;

Syntaxe metody „compare()“ podporuje pouze jeden základní argument, kterým je „ otherBuffer “.

Použijme výše definovanou syntaxi prakticky:

byl buf1 = Buffer. z ( 'Linux' ) ;
byl buf2 = Buffer. z ( 'Linux' ) ;
byl X = Buffer. porovnat ( buf1 , buf2 ) ;
řídicí panel. log ( X ) ;

byl buf1 = Buffer. z ( 'L' ) ;
byl buf2 = Buffer. z ( 'H' ) ;
byl X = Buffer. porovnat ( buf1 , buf2 ) ;
řídicí panel. log ( X ) ;

byl buf1 = Buffer. z ( 'H' ) ;
byl buf2 = Buffer. z ( 'L' ) ;
byl X = Buffer. porovnat ( buf1 , buf2 ) ;
řídicí panel. log ( X ) ;

Ve výše uvedených řádcích kódu:

  • ' z() Metody ” vytvářejí více objektů vyrovnávací paměti se zadaným řetězcem.
  • ' porovnat() ” metoda porovnává zadané objekty vyrovnávací paměti, které byly předány jako její argument.
  • ' console.log() ” zobrazí výsledek metody “compare()” na konzole.

Výstup
Spusťte soubor „.js“ pomocí níže uvedeného příkazu:

aplikace uzlu. js

Číselné hodnoty zobrazené jako výsledný výstup jasně ukazují definovaný rozdíl:

Nyní přejděte ke zřetězení vyrovnávacích pamětí v Node.js.

Jak zřetězit vyrovnávací paměti v Node.js?

' spojit() ” metoda pomáhá spojit více než jeden buffer. Tato metoda zřetězí všechny cílené vyrovnávací paměti v poli do jednoho objektu vyrovnávací paměti sloučením jejich obsahu.

Syntax

Buffer. konkat ( arr , délka ] )

Výše uvedená syntaxe funguje na následujících dvou parametrech:

  • arr : Určuje pole vyrovnávacích pamětí, které chtějí uživatelé zřetězit.
  • délka : Označuje délku zřetězené vyrovnávací paměti.

Následující fragment kódu prakticky zřetězí dané vyrovnávací paměti pomocí definované metody „concat()“:

byl buf1 = Buffer. z ( ' \n Linux \n ' ) ;
byl buf2 = Buffer. z ( 'Webová stránka' ) ;
byl buf3 = Buffer. konkat ( [ buf1 , buf2 ] ) ;
řídicí panel. log ( 'Obsah Buffer3 je:' + buf3. toString ( ) ) ;

Ve výše uvedeném úryvku kódu:

  • ' z() Metody ” vytvoří dva objekty vyrovnávací paměti se zadaným řetězcem.
  • ' spojit() Metoda ” spojuje zadaný buffer v poli do objektu bufferu.
  • ' toString() ” metoda dekóduje obsah zřetězené vyrovnávací paměti do formátu řetězce (čitelný pro člověka) a poté jej zobrazí v konzole pomocí „ console.log() “ metoda.

Výstup
Nyní spusťte níže uvedený příkaz a spusťte soubor „.js“:

aplikace uzlu. js

Výstup zobrazí nový objekt vyrovnávací paměti, který je vytvořen ve výsledku zřetězení zadaných vyrovnávacích pamětí:

Probrali jsme, jak kopírovat, porovnávat a zřetězit vyrovnávací paměť v Nodejs.

Závěr

Chcete-li zkopírovat vyrovnávací paměť v Nodejs, použijte „ Buffer.copy() “ a pro účely srovnání použijte „ Buffer.compare() “ metoda. Kromě toho pro zřetězení vyrovnávacích pamětí použijte „ Buffer.concat() “ metoda. Všechny tyto metody jsou předdefinované, jednoduché a také snadno použitelné. Tento příspěvek poskytuje stručný popis kopírování, porovnávání a zřetězení vyrovnávací paměti v Node.js.