Kako raditi s tokovima za pisanje u Node.js?

Kako Raditi S Tokovima Za Pisanje U Node Js



Podaci se prenose mrežom između mjesta izvora i odredišta u obliku tokova. Strana pošiljatelja naziva se izvorom, a strana primatelja predstavlja se odredišnim tokom. Korištenjem ovih tokova, podaci u tekstualnom obliku ili audio ili video formatu mogu se slati i primati uz minimalne šanse za curenje ili gubitak podataka.

Ovaj vodič objašnjava rad s tokovima koji se mogu pisati u Node.js.

Kako raditi s tokovima za pisanje u Node.js?

' za pisanje ” tok se može koristiti za umetanje novih podataka u datoteku ili može smjestiti sadržaj drugog nasumičnog toka. Pretvorba ili smještaj podataka uglavnom se događa uz pomoć ' cijev() ” metoda. Ova metoda čini proces pretvorbe i dodjele sadržaja praktičnijim, a istovremeno smanjuje šanse za koliziju podataka.







Sintaksa



Tok koji se može pisati kreira se pozivanjem metode u nastavku:



fs. createWriteStream ( 'targetFile.ext' ) ;

U gornjoj sintaksi, ' createWriteStream() ” poziva objekt uvezenog “ fs ”, a kao parametar se prosljeđuje datoteka u koju će se podaci pisati.





Pogledajmo nekoliko primjera streamova koji se mogu pisati u Node.js.

Primjer 1: Zapisivanje sadržaja druge datoteke korištenjem toka za pisanje

U donjem primjeru, nasumična datoteka šalje se preko čitljivog Streama, a zatim se sadržaj ove datoteke stavlja u drugu datoteku dostupnu u Streamu za pisanje:



bio je fsObj = zahtijevati ( 'fs' ) ;

konst dataStream = fsObj. createReadStream ( 'moja novadatoteka1.txt' ) ;

konst writeStream = fsObj. createWriteStream ( 'moja novadatoteka2.txt' ) ;

dataStream. cijev ( writeStream ) ;

Opis gornjeg koda:

  • Prvo, ' fs ” modul se uvozi i njegov objekt se pohranjuje u novi “ fsObj ” varijabla.
  • Dalje, uz pomoć ' fasObj ' pozvati ' createReadStream() ” metoda za stvaranje čitljivog toka i proslijedite odabranu čitljivu datoteku kao svoj parametar.
  • Zatim se stvara tok za pisanje pozivanjem ' createWriteStream() ” za pisanje sadržaja u datoteci.
  • Pohranite rezultate gore pozvanih metoda u ' dataStream ' i ' writeStream ” varijabli.
  • Na kraju, pozovite '. cijev() ' metoda nakon koje slijedi ' dataStream ' i vodi s ' writeStream ” varijable.

Sada pokrenite datoteku koja sadrži (controlFlow.js) izvođenjem naredbe u nastavku:

Primjer 2: Zapisivanje sadržaja u datoteku pomoću metode “stream.write()”.

U ovom primjeru, ' pisati() ” metoda se koristi za pisanje podataka preko datoteke dostupne preko Streama za pisanje:

bio je fsObj = zahtijevati ( 'fs' ) ;
konst httpObj = zahtijevati ( 'http' ) ;

konst serveLocaly = httpObj. createServer ( ( zahtjev, odgovor ) => {
probati {
konst cellStream = fsObj. createWriteStream ( 'moja novadatoteka2.txt' ) ;
cellStream. pisati ( 'Podaci koji će se smjestiti u ciljanu datoteku.' ) ;
cellStream. kraj ( ) ;
odgovor. kraj ( 'Podaci zapisani putem Writable Stream' )
}
ulov ( greška ) {
konzola. greška ( greška ) ;
}
} ) ;
serveLocaly. slušati ( 8080 , ( ) => {
konzola. log ( 'Poslužitelj radi na Localhost priključku broj: '8080'' )
) ;

Opis gornjeg koda je sljedeći:

  • Prvo uvezite potrebne ' fs ' i ' http ' modula i pohranjuju njihove objekte u ' fsObj ' i ' httpObj ” varijabli.
  • Zatim, poslužitelj je kreiran pozivanjem ' kreiraj poslužitelj() ' metoda i pohranjivanje ovog novostvorenog poslužitelja u ' serveLocaly ” varijabla.
  • Zatim upotrijebite ' probati ' unutar funkcije povratnog poziva metode i pozovite ' createWriteStream() ' metodom pomoću ' fsObj ” varijabla.
  • Proslijedite ciljanu datoteku u koju treba umetnuti sadržaj, unutar ove zagrade metode i pohranite rezultat u ' cellStream ” varijabla
  • Iskoristite ' pisati() ” s ovom varijablom i proslijedite lažnu poruku unutar njezinih zagrada koja će biti zapisana u ciljanu datoteku.
  • Zatvorite Stream pozivanjem ' kraj() ' i prikazati poruku o uspjehu preko web stranice pozivanjem ' odgovor.end() ” metoda. Gdje ' odgovor ” je parametar povratnog poziva za „ createServer ” metoda.
  • Iskoristite ' ulov ” blok za obradu eventualnih pogrešaka.
  • Na kraju, poslušajte ili postavite poslužitelj preko broja priključka ' 8080 ” i prikazati poruku o uspjehu uz pomoć svoje funkcije povratnog poziva.

Generirani izlaz pokazuje da je navedeni tekst napisan pomoću ' pisati() ” metoda:

Primjer 3: Zapisivanje istih podataka u više datoteka

U ovom primjeru, jedna će se datoteka pročitati iz toka pomoću ' createReadStream() ” metoda. Zatim se pročitani sadržaj zapisuje u više datoteka pomoću ' createWriteStream() ' i ' .cijev() ” metode:

bio je fsObj = zahtijevati ( 'fs' ) ;

konst dataStream = fsObj. createReadStream ( 'moja novadatoteka1.txt' ) ;

konst pisanjeStream1 = fsObj. createWriteStream ( 'moja novadatoteka2.txt' ) ;

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

dataStream. cijev ( pisanjeStream1 ) ;

dataStream. cijev ( writeStream2 ) ;

U gornjem isječku koda:

  • ' createReadStream() ” poziva se metoda i kao njen parametar se prosljeđuje datoteka čiji sadržaj treba pročitati. Rezultat ove metode pohranjuje se u ' dataStream ” varijabla.
  • Zatim, ' createWriteStream() ” poziva se metoda i ciljana datoteka se prosljeđuje kao njezin parametar.
  • Na isti način, staza za drugu datoteku također se prosljeđuje kao tok za pisanje, a rezultati se pohranjuju u ' pisanjeStream1 ' i ' writeStream2 ” varijable.
  • Nakon toga, koristeći ' .cijev() ' metoda sadržaj pohranjen u ' dataStream ” varijabla je dodijeljena “ pisanjeStream1 ' i ' writeStream2 ” varijable.

Generirani izlaz pokazuje da je dostavljeni sadržaj datoteke umetnut u dostavljene datoteke preko tokova:

To je sve o radu tokova koji se mogu pisati u Node.js.

Zaključak

Za rad s tokovima koji se mogu pisati, metoda ' createWriteStream() ” se poziva putem „ fs ” objekt modula. Ciljana staza datoteke na koju se sadržaj treba zapisati prosljeđuje se kao njen parametar. Za pisanje sadržaja iz drugog toka ' .cijev() ” koristi se metoda. ' pisati() ” također je korisna kada se radi o pisanju sadržaja izravno u ciljanu datoteku. Ovaj post je ilustrirao postupak rada s tokovima koji se mogu pisati.