Ako pracovať s zapisovateľnými prúdmi v Node.js?

Ako Pracovat S Zapisovatelnymi Prudmi V Node Js



Dáta sa prenášajú po sieti medzi zdrojovými a cieľovými miestami vo forme tokov. Strana odosielateľa sa označuje ako zdroj a strana príjemcu je reprezentovaná ako cieľový tok. Pomocou týchto streamov je možné odosielať a prijímať údaje v textovej forme alebo vo formáte zvuku alebo videa s minimálnou pravdepodobnosťou úniku alebo straty údajov.

Táto príručka vysvetľuje prácu so zapisovateľnými prúdmi v Node.js.

Ako pracovať s zapisovateľnými prúdmi v Node.js?

' zapisovateľný ” stream možno použiť na vloženie nových údajov do súboru alebo môže umiestniť obsah iného náhodného streamu. Konverzia alebo umiestnenie údajov sa väčšinou deje pomocou „ rúra() “. Táto metóda robí proces konverzie a priraďovania obsahu pohodlnejším a zároveň znižuje pravdepodobnosť kolízie údajov.







Syntax



Zapisovateľný stream sa vytvorí vyvolaním nižšie uvedenej metódy:



fs. createWriteStream ( 'targetFile.ext' ) ;

Vo vyššie uvedenej syntaxi je „ creatWriteStream() “ je vyvolaný objektom importovaného “ fs ” a ako parameter sa odovzdá súbor, do ktorého sa budú dáta zapisovať.





Pozrime sa na niekoľko príkladov zapisovateľných streamov v Node.js.

Príklad 1: Zápis obsahu iného súboru pomocou zapisovateľného streamu

V nižšie uvedenom príklade sa náhodný súbor odošle cez čitateľný stream a potom sa tento obsah súboru umiestni do iného súboru dostupného v zapisovateľnom streame:



bol fsObj = vyžadovať ( 'fs' ) ;

konšt dátový tok = fsObj. vytvoriťReadStream ( 'mynewfile1.txt' ) ;

konšt writeStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

dátový tok. rúra ( writeStream ) ;

Popis vyššie uvedeného kódu:

  • Po prvé, „ fs “ modul sa importuje a jeho objekt sa uloží do nového “ fsObj “premenná.
  • Ďalej s pomocou „ fasObj 'vyvolať' createReadStream() ” na vytvorenie čitateľného toku a odovzdať vybraný čitateľný súbor ako jeho parameter.
  • Potom sa zapisovateľný stream vytvorí vyvolaním „ createWriteStream() ” spôsob zápisu obsahu do poskytnutého súboru.
  • Uložte výsledky vyššie uvedených metód do „ dátový tok “ a „ writeStream “premenné.
  • Nakoniec vyvolajte „. rúra() “metóda nasledovaná “ dátový tok “ a vedie s „ writeStream “premenné.

Teraz spustite súbor, ktorý obsahuje (controlFlow.js) spustením nižšie uvedeného príkazu:

Príklad 2: Zápis obsahu do súboru pomocou metódy „stream.write()“.

V tomto príklade „ písať () ” metóda sa používa na zapisovanie údajov do súboru dostupného cez zapisovateľný stream:

bol fsObj = vyžadovať ( 'fs' ) ;
konšt httpObj = vyžadovať ( 'http' ) ;

konšt serveLocaly = httpObj. createServer ( ( žiadosť, odpoveď ) => {
skúste {
konšt cellStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
cellStream. písať ( 'Údaje, ktoré sa majú umiestniť do cieľového súboru.' ) ;
cellStream. koniec ( ) ;
odpoveď. koniec ( „Údaje zapísané prostredníctvom zapisovateľného streamu“ )
}
chytiť ( chyba ) {
konzoly. chyba ( chyba ) ;
}
} ) ;
serveLocaly. počúvaj ( 8080 , ( ) => {
konzoly. log ( 'Server beží na čísle portu Localhost: '8080'' )
) ;

Popis vyššie uvedeného kódu je nasledujúci:

  • Najprv importujte požadované „ fs “ a „ http ” moduly a ukladať ich objekty do “ fsObj “ a „ httpObj “premenné.
  • Ďalej bol server vytvorený vyvolaním „ createServer() “ a uloženie tohto novovytvoreného servera do “ serveLocaly “premenná.
  • Potom použite „ skúste “ zablokujte vo funkcii spätného volania metódy a vyvolajte „ createWriteStream() “ pomocou metódy “ fsObj “premenná.
  • Zadajte cieľový súbor, do ktorého je potrebné vložiť obsah, do zátvoriek tejto metódy a výsledok uložte do „ cellStream “premenná
  • Využite „ písať () ” pomocou tejto premennej a do jej zátvoriek odošle fiktívnu správu, ktorá sa zapíše do cieľového súboru.
  • Zatvorte stream vyvolaním „ koniec() “ a zobrazí správu o úspechu cez webovú stránku vyvolaním „ response.end() “. Kde ' odpoveď “ je parameter spätného volania „ createServer “.
  • Využite „ chytiť ” blok na spracovanie všetkých vzniknutých chýb.
  • Nakoniec počúvajte alebo nastavte server cez číslo portu “ 8080 “ a pomocou funkcie spätného volania zobrazí správu o úspechu.

Vygenerovaný výstup ukazuje, že poskytnutý text bol napísaný pomocou „ písať () “ metóda:

Príklad 3: Zápis rovnakých údajov do viacerých súborov

V tomto príklade sa bude čítať jeden súbor zo streamu pomocou „ createReadStream() “. Potom sa prečítaný obsah zapíše do viacerých súborov pomocou „ createWriteStream() “ a „ .rúra() “metódy:

bol fsObj = vyžadovať ( 'fs' ) ;

konšt dátový tok = fsObj. vytvoriťReadStream ( 'mynewfile1.txt' ) ;

konšt writeStream1 = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

konšt writeStream2 = fsObj. createWriteStream ( usecase.txt ) ;

dátový tok. rúra ( writeStream1 ) ;

dátový tok. rúra ( writeStream2 ) ;

Vo vyššie uvedenom útržku kódu:

  • ' createReadStream() ” sa vyvolá metóda a ako jej parameter sa odovzdá súbor, ktorého obsah je potrebné prečítať. Výsledok tejto metódy sa uloží do „ dátový tok “premenná.
  • Ďalej, „ createWriteStream() zavolá sa metóda ” a cieľový súbor sa odovzdá ako jej parameter.
  • Rovnakým spôsobom sa cesta k druhému súboru tiež odovzdá ako zapisovateľný stream a výsledky sa uložia do „ writeStream1 “ a „ writeStream2 “premenné.
  • Potom pomocou „ .rúra() ” spôsobe obsah uložený v “ dátový tok premenná ' je priradená k ' writeStream1 “ a „ writeStream2 “premenné.

Vygenerovaný výstup ukazuje, že poskytnutý obsah súboru bol vložený do poskytnutých súborov cez prúdy:

To je všetko o fungovaní zapisovateľných streamov v Node.js.

Záver

Na prácu so zapisovateľnými prúdmi sa používa metóda „ createWriteStream() “ sa vyvolá cez „ fs “modulový objekt. Ako jeho parameter sa odovzdá cieľová cesta k súboru, na ktorú je potrebné zapísať obsah. Ak chcete napísať obsah z iného streamu, „ .rúra() “ používa sa metóda. ' písať () ” metóda je tiež užitočná, pokiaľ ide o písanie obsahu priamo do cieľového súboru. Tento príspevok ilustruje postup práce so zapisovateľnými prúdmi.