Kako delati z zapisljivimi tokovi v Node.js?

Kako Delati Z Zapisljivimi Tokovi V Node Js



Podatki se prenašajo po omrežju med izvorno in ciljno lokacijo v obliki tokov. Stran pošiljatelja se imenuje vir, stran prejemnika pa je predstavljena kot ciljni tok. Z uporabo teh tokov je mogoče podatke v besedilni obliki ali avdio ali video obliki pošiljati in prejemati z minimalnimi možnostmi uhajanja ali izgube podatkov.

V tem priročniku je razloženo delo z zapisljivimi tokovi v Node.js.

Kako delati z zapisljivimi tokovi v Node.js?

' zapisljivo ” se lahko uporabi za vstavljanje novih podatkov v datoteko ali za umestitev vsebine drugega naključnega toka. Pretvorba ali postavitev podatkov se večinoma zgodi s pomočjo » cev() ” metoda. S to metodo je postopek pretvorbe in dodeljevanja vsebine bolj priročen, hkrati pa se zmanjšajo možnosti kolizije podatkov.







Sintaksa



Zapisljivi tok se ustvari s priklicem spodnje metode:



fs. createWriteStream ( 'targetFile.ext' ) ;

V zgornji sintaksi je » createWriteStream() ' prikliče objekt uvoženega ' fs ” in datoteka, v katero bodo zapisani podatki, se posreduje kot parameter.





Oglejmo si nekaj primerov za zapisljive tokove v Node.js.

Primer 1: Pisanje vsebine druge datoteke z uporabo zapisljivega toka

V spodnjem primeru je naključna datoteka poslana prek berljivega toka, nato pa se vsebina te datoteke postavi v drugo datoteko, ki je na voljo v zapisljivem toku:



je bil fsObj = zahtevati ( 'fs' ) ;

konst dataStream = fsObj. createReadStream ( 'mynewfile1.txt' ) ;

konst writeStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

dataStream. cev ( writeStream ) ;

Opis zgornje kode:

  • Prvič, ' fs ' je uvožen in njegov objekt shranjen v novi ' fsObj ” spremenljivka.
  • Nato s pomočjo ' fasObj ' prikliči ' createReadStream() ” za ustvarjanje berljivega toka in posredovanje izbrane berljive datoteke kot njen parameter.
  • Nato se zapisljivi tok ustvari s klicem » createWriteStream() ” za pisanje vsebine v predloženo datoteko.
  • Shranite rezultate zgoraj priklicanih metod v » dataStream « in » writeStream ” spremenljivke oz.
  • Nazadnje pokličite ». cev () ' metoda, ki ji sledi ' dataStream « in vodi z » writeStream ” spremenljivk.

Zdaj izvedite vsebovalno datoteko (controlFlow.js), tako da zaženete spodnji ukaz:

Primer 2: Zapisovanje vsebine v datoteko z uporabo metode »stream.write()«.

V tem primeru je ' pisati() ” se uporablja za zapisovanje podatkov v datoteko, ki je na voljo v zapisljivem toku:

je bil fsObj = zahtevati ( 'fs' ) ;
konst httpObj = zahtevati ( 'http' ) ;

konst serveLocaly = httpObj. createServer ( ( prošnja, odgovor ) => {
poskusi {
konst cellStream = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;
cellStream. pisati ( 'Podatki, ki bodo vneseni v ciljno datoteko.' ) ;
cellStream. konec ( ) ;
odgovor. konec ( 'Podatki, zapisani prek zapisljivega toka' )
}
ulov ( napaka ) {
konzola. napaka ( napaka ) ;
}
} ) ;
serveLocaly. poslušaj ( 8080 , ( ) => {
konzola. dnevnik ( 'Strežnik deluje na številki vrat lokalnega gostitelja: '8080'' )
) ;

Opis zgornje kode je naslednji:

  • Najprej uvozite zahtevano » fs « in » http ” modulov in shrani njihove objekte v “ fsObj « in » httpObj ” spremenljivke oz.
  • Nato je bil strežnik ustvarjen s klicem » createServer() ' in shranjevanje tega na novo ustvarjenega strežnika v ' serveLocaly ” spremenljivka.
  • Nato uporabite » poskusi ' znotraj funkcije povratnega klica metode in pokličite ' createWriteStream() ' metoda z uporabo ' fsObj ” spremenljivka.
  • Posredujte ciljno datoteko, v katero je treba vstaviti vsebino, znotraj tega oklepaja metode in shranite rezultat v » cellStream ” spremenljivka
  • Uporabite ' pisati() ” s to spremenljivko in v njenem oklepaju posreduje navidezno sporočilo, ki bo zapisano v ciljni datoteki.
  • Zaprite tok s klicem » konec () ' in prikažete sporočilo o uspehu prek spletne strani tako, da prikličete ' response.end() ” metoda. Kje ' odgovor ' je parameter povratnega klica za ' createServer ” metoda.
  • Uporabite ' ulov ” za obravnavo morebitnih napak.
  • Končno poslušajte ali nastavite strežnik prek številke vrat ' 8080 ” in prikaže sporočilo o uspehu s pomočjo funkcije povratnega klica.

Ustvarjeni izhod kaže, da je bilo navedeno besedilo napisano z uporabo » pisati() ” metoda:

Primer 3: Zapisovanje istih podatkov v več datotek

V tem primeru bo ena datoteka prebrana iz toka z uporabo » createReadStream() ” metoda. Nato se prebrana vsebina zapiše v več datotek z uporabo » createWriteStream() « in » .pipe() ” metode:

je bil fsObj = zahtevati ( 'fs' ) ;

konst dataStream = fsObj. createReadStream ( 'mynewfile1.txt' ) ;

konst writeStream1 = fsObj. createWriteStream ( 'mynewfile2.txt' ) ;

konst writeStream2 = fsObj. createWriteStream ( 'usecase.txt' ) ;

dataStream. cev ( writeStream1 ) ;

dataStream. cev ( writeStream2 ) ;

V zgornjem delčku kode:

  • ' createReadStream() ” se prikliče metoda in datoteka, katere vsebino je treba prebrati, se posreduje kot njen parameter. Rezultat te metode je shranjen v ' dataStream ” spremenljivka.
  • Nato je ' createWriteStream() ” se pokliče metoda in ciljna datoteka se posreduje kot njen parameter.
  • Na enak način se tudi pot za drugo datoteko posreduje kot zapisljiv tok, rezultati pa so shranjeni v ' writeStream1 « in » writeStream2 ” spremenljivk.
  • Po tem z uporabo » .pipe() ' vsebino, shranjeno v ' dataStream ' je dodeljena spremenljivki ' writeStream1 « in » writeStream2 ” spremenljivk.

Ustvarjeni izhod kaže, da je bila podana vsebina datoteke vstavljena v podane datoteke prek tokov:

To je vse o delovanju zapisljivih tokov v Node.js.

Zaključek

Za delo z zapisljivimi tokovi je metoda ' createWriteStream() ' se prikliče prek ' fs ” predmet modula. Ciljna pot datoteke, na katero je treba zapisati vsebino, se posreduje kot njen parameter. Za pisanje vsebine iz drugega toka uporabite » .pipe() ” se uporablja metoda. ' pisati() ” Metoda je prav tako koristna, ko gre za pisanje vsebine neposredno v ciljno datoteko. Ta objava je ponazorila postopek dela z zapisljivimi tokovi.