Cum să lucrați cu fluxuri de scriere în Node.js?

Cum Sa Lucrati Cu Fluxuri De Scriere In Node Js



Datele sunt transferate prin rețea între locurile sursă și destinație sub formă de fluxuri. Partea emițătorului este denumită sursă, iar partea receptorului este reprezentată ca flux de destinație. Folosind aceste fluxuri, datele în formă textuală sau în format audio sau video pot fi trimise și primite cu șanse minime de scurgere sau pierdere a datelor.

Acest ghid explică lucrul cu fluxuri de scriere în Node.js.

Cum să lucrați cu fluxuri de scriere în Node.js?

scris ” stream poate fi folosit pentru a introduce date noi în fișier sau poate plasa conținutul unui alt stream aleatoriu. Conversia sau plasarea datelor are loc în mare parte cu ajutorul „ teava() ” metoda. Această metodă face procesul de conversie și atribuire a conținutului mai convenabil, reducând în același timp șansele de ciocnire a datelor.







Sintaxă



Fluxul care poate fi scris este creat prin invocarea metodei de mai jos:



fs. createWriteStream ( „targetFile.ext” ) ;

În sintaxa de mai sus, „ creatWriteStream() ” este invocat de obiectul „importului” fs ”, iar fișierul pe care urmează să fie scrise datele este trecut ca parametru.





Să aruncăm o privire peste câteva exemple de fluxuri care pot fi scrise în Node.js.

Exemplul 1: Scrierea conținutului altui fișier utilizând un flux care poate fi scris

În exemplul de mai jos, fișierul aleatoriu este trimis prin fluxul care poate fi citit, iar apoi conținutul acestui fișier este plasat într-un alt fișier disponibil în fluxul care poate fi scris:



a fost fsObj = cere ( „fs” ) ;

const flux de date = fsObj. createReadStream ( „mynewfile1.txt” ) ;

const writeStream = fsObj. createWriteStream ( „mynewfile2.txt” ) ;

flux de date. teava ( writeStream ) ;

Descrierea codului de mai sus:

  • În primul rând, „ fs ” este importat și obiectul său este stocat în noul “ fsObj ' variabil.
  • În continuare, cu ajutorul lui „ fasObj ” invocă ” createReadStream() ” pentru a crea un flux lizibil și a trece fișierul lizibil selectat ca parametru.
  • Apoi, fluxul care poate fi scris este creat prin invocarea „ createWriteStream() ” pentru a scrie conținutul pe fișierul furnizat.
  • Stocați rezultatele metodelor invocate mai sus în „ flux de date ' și ' writeStream ” variabile respectiv.
  • În cele din urmă, invocați „. teava() ” metoda urmata de “ flux de date ” și conducând cu „ writeStream ” variabile.

Acum, executați fișierul care conține (controlFlow.js) rulând comanda de mai jos:

Exemplul 2: Scrierea conținutului în fișier folosind metoda „stream.write()”.

În acest exemplu, „ scrie() ” este folosită pentru a scrie date peste fișierul disponibil prin fluxul de scris:

a fost fsObj = cere ( „fs” ) ;
const httpObj = cere ( „http” ) ;

const serveLocaly = httpObj. createServer ( ( cere raspuns ) => {
încerca {
const cellStream = fsObj. createWriteStream ( „mynewfile2.txt” ) ;
cellStream. scrie ( „Datele care urmează să fie plasate în fișierul vizat”. ) ;
cellStream. Sfârşit ( ) ;
raspuns. Sfârşit ( „Date scrise prin flux care poate fi scris” )
}
captură ( eroare ) {
consolă. eroare ( eroare ) ;
}
} ) ;
serveLocaly. asculta ( 8080 , ( ) => {
consolă. Buturuga ( „Serverul rulează pe numărul portului Localhost: „8080” „ )
) ;

Descrierea codului de mai sus este următoarea:

  • Mai întâi, importați „ fs ' și ' http ” module și stocați obiectele lor în „ fsObj ' și ' httpObj ” variabile respectiv.
  • Apoi, serverul a fost creat prin invocarea „ createServer() ” și stocarea acestui server nou creat într-un „ serveLocaly ' variabil.
  • Apoi, utilizați un „ încerca ” blocați în interiorul funcției de apel invers al metodei și invocați „ createWriteStream() ” folosind metoda “ fsObj ' variabil.
  • Treceți fișierul vizat în care trebuie introdus conținutul, în cadrul acestei paranteze de metodă și stocați rezultatul în „ cellStream ' variabil
  • Utilizați „ scrie() ” cu această variabilă și treceți un mesaj inactiv în parantezele sale care va fi scris în fișierul vizat.
  • Închideți fluxul invocând „ Sfârşit() ” și afișați un mesaj de succes pe pagina web prin invocarea „ response.end() ” metoda. Unde ' raspuns ” este parametrul de apel invers al „ createServer ” metoda.
  • Utilizați „ captură ” bloc pentru a gestiona orice erori apărute.
  • În cele din urmă, ascultați sau configurați serverul peste numărul portului „ 8080 ” și afișați mesajul de succes cu ajutorul funcției de apel invers.

Rezultatul generat arată că textul furnizat a fost scris folosind „ scrie() ” metoda:

Exemplul 3: Scrierea acelorași date pe mai multe fișiere

În acest exemplu, un singur fișier va fi citit din flux folosind „ createReadStream() ” metoda. Apoi, conținutul citit este scris peste mai multe fișiere folosind „ createWriteStream() ' și ' .pipe() ” metode:

a fost fsObj = cere ( „fs” ) ;

const flux de date = fsObj. createReadStream ( „mynewfile1.txt” ) ;

const writeStream1 = fsObj. createWriteStream ( „mynewfile2.txt” ) ;

const writeStream2 = fsObj. createWriteStream ( „usecase.txt” ) ;

flux de date. teava ( writeStream1 ) ;

flux de date. teava ( writeStream2 ) ;

În fragmentul de cod de mai sus:

  • createReadStream() ” este invocată și fișierul al cărui conținut trebuie citit este trecut ca parametru. Rezultatul acestei metode este stocat în „ flux de date ' variabil.
  • În continuare, „ createWriteStream() ” este apelată și fișierul vizat este transmis ca parametru.
  • În același mod, calea pentru al doilea fișier este, de asemenea, transmisă ca flux de scriere, iar rezultatele sunt stocate în „ writeStream1 ' și ' writeStream2 ” variabile.
  • După aceea, folosind „ .pipe() ” metoda conținutul stocat în „ flux de date ” este atribuită variabilei “ writeStream1 ' și ' writeStream2 ” variabile.

Rezultatul generat arată că conținutul fișierului furnizat a fost inserat în fișierele furnizate peste fluxuri:

Acesta este totul despre funcționarea fluxurilor care pot fi scrise în Node.js.

Concluzie

Pentru a lucra cu fluxuri inscriptibile, metoda „ createWriteStream() ” este invocat prin intermediul „ fs ” obiect modul. Calea fișierului vizat pe care trebuie scris conținutul este transmisă ca parametru. Pentru a scrie conținutul dintr-un alt flux, „ .pipe() ” este utilizată metoda. „ scrie() ” este utilă și atunci când vine vorba de scrierea conținutului direct pe fișierul vizat. Această postare a ilustrat procedura de lucru cu fluxuri care pot fi scrise.