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.