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“:
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:
Čí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“:
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.