Hogyan dolgozhatok írható adatfolyamokkal a Node.js-ben?

Hogyan Dolgozhatok Irhato Adatfolyamokkal A Node Js Ben



Az adatok a hálózaton keresztül, a forrás és a célhelyek között adatfolyamok formájában kerülnek átvitelre. A küldő oldalt forrásnak, a fogadó oldalt pedig célfolyamnak nevezzük. Ezekkel az adatfolyamokkal az adatok szöveges vagy hang- vagy videoformátumban küldhetők és fogadhatók az adatszivárgás vagy adatvesztés minimális esélye mellett.

Ez az útmutató elmagyarázza a Node.js írható adatfolyamaival való munkát.

Hogyan dolgozhatok írható adatfolyamokkal a Node.js-ben?

A ' írható ” stream segítségével új adatok illeszthetők be a fájlba, vagy elhelyezhető egy másik véletlenszerű adatfolyam tartalma. Az adatok konvertálása vagy elhelyezése többnyire a „ cső() ” módszerrel. Ez a módszer kényelmesebbé teszi a tartalom konvertálását és hozzárendelését, miközben csökkenti az adatok ütközésének esélyét.







Szintaxis



Az írható adatfolyam az alábbi metódus meghívásával jön létre:



fs. CreateWriteStream ( 'targetFile.ext' ) ;

A fenti szintaxisban a „ creatWriteStream() ' az importált ' tárgya hívja meg fs ” modult, és paraméterként adjuk át azt a fájlt, amelyre az adatokat írjuk.





Nézzünk meg néhány példát a Node.js írható adatfolyamaira.

1. példa: Egy másik fájl tartalmának írása írható adatfolyam segítségével

Az alábbi példában a véletlenszerű fájl elküldésre kerül az olvasható adatfolyamon, majd ez a fájltartalom egy másik, az írható adatfolyamon elérhető fájlba kerül:



fsObj volt = igényelnek ( 'fs' ) ;

const adatfolyam = fsObj. CreateReadStream ( 'újfájl1.txt' ) ;

const writeStream = fsObj. CreateWriteStream ( 'mynewfile2.txt' ) ;

adatfolyam. cső ( writeStream ) ;

A fenti kód leírása:

  • Először is a „ fs ' modul importálásra kerül, és az objektuma az új ' fsObj ” változó.
  • Ezután a „ fasObj ' meghívja a ' CreateReadStream() ” metódussal olvasható adatfolyam létrehozására, és paraméterként adja át a kiválasztott olvasható fájlt.
  • Ezután az írható adatfolyam a „ createWriteStream() ” módszerrel írja be a tartalmat a megadott fájlba.
  • Tárolja a fent hivatkozott módszerek eredményeit a ' adatfolyam ” és „ writeStream ” változókat.
  • Végül hívja meg a „. cső() ' módszer, majd ' adatfolyam ” és a „ writeStream ” változók.

Most futtassa a tartalmazó fájlt (controlFlow.js) az alábbi parancs futtatásával:

2. példa: A tartalom írása fájlba a „stream.write()” módszerrel

Ebben a példában a „ ír() ” metódus használható adatok írására az írható adatfolyamon keresztül elérhető fájlba:

fsObj volt = igényelnek ( 'fs' ) ;
const httpObj = igényelnek ( 'http' ) ;

const serveLocaly = httpObj. CreateServer ( ( kérés, válasz ) => {
próbáld ki {
const cellStream = fsObj. CreateWriteStream ( 'mynewfile2.txt' ) ;
cellStream. ír ( 'A megcélzott fájlba helyezendő adatok.' ) ;
cellStream. vége ( ) ;
válasz. vége ( 'Írható adatfolyamon keresztül írt adatok' )
}
fogás ( hiba ) {
konzol. hiba ( hiba ) ;
}
} ) ;
serveLocaly. hallgat ( 8080 , ( ) => {
konzol. log ( 'A szerver a Localhost porton fut: '8080' )
) ;

A fenti kód leírása a következő:

  • Először importálja a szükséges ' fs ” és „ http ' modulokat, és tárolja objektumaikat a ' fsObj ” és „ httpObj ” változókat.
  • Ezután a szervert a „ CreateServer() ” módszerrel, és az újonnan létrehozott szervert egy „ serveLocaly ” változó.
  • Ezután használjon egy „ próbáld ki ' blokkot a metódus visszahívási függvényében, és hívja meg a ' createWriteStream() ' módszer segítségével a ' fsObj ” változó.
  • Adja át a célfájlt, amelybe a tartalmat be kell illeszteni, ebben a metóduszárójelben, és tárolja az eredményt a „ cellStream ” változó
  • Használd a ' ír() ” metódust ezzel a változóval, és adjon át egy üres üzenetet a zárójelében, amely a célfájlba kerül.
  • Zárja be az adatfolyamot a „ vége() ” metódussal, és jelenítsen meg egy sikerüzenetet a weboldalon a „ válasz.end() ” módszerrel. Ahol ' válasz ' a visszahívási paramétere a ' createServer ” módszerrel.
  • Használd a ' fogás ” blokkot az esetleges hibák kezelésére.
  • Végül hallgassa meg vagy állítsa be a szervert a portszámon keresztül 8080 ” és megjeleníti a sikerüzenetet a visszahívási funkciója segítségével.

A generált kimenet azt mutatja, hogy a megadott szöveget a „ ír() ” módszer:

3. példa: Ugyanazon adatok írása több fájlra

Ebben a példában egyetlen fájl lesz beolvasva az adatfolyamból a „ CreateReadStream() ” módszerrel. Ezután az olvasott tartalom több fájlra íródik a „ createWriteStream() ” és „ .cső() ” módszerek:

fsObj volt = igényelnek ( 'fs' ) ;

const adatfolyam = fsObj. CreateReadStream ( 'újfájl1.txt' ) ;

const writeStream1 = fsObj. CreateWriteStream ( 'mynewfile2.txt' ) ;

const writeStream2 = fsObj. CreateWriteStream ( 'usecase.txt' ) ;

adatfolyam. cső ( writeStream1 ) ;

adatfolyam. cső ( writeStream2 ) ;

A fenti kódrészletben:

  • A ' CreateReadStream() ” metódus kerül meghívásra, és paramétereként az a fájl kerül átadásra, amelynek tartalmát olvasni kell. Ennek a módszernek az eredménye a „ adatfolyam ” változó.
  • Ezután a „ createWriteStream() ” metódus kerül meghívásra, és a megcélzott fájl paraméterként kerül átadásra.
  • Ugyanígy a második fájl elérési útja is írható adatfolyamként kerül átadásra, és az eredmények a ' writeStream1 ” és „ writeStream2 ” változók.
  • Ezt követően használja a „ .cső() ' módszerrel a ' adatfolyam ' változó hozzá van rendelve a ' writeStream1 ” és „ writeStream2 ” változók.

A generált kimenet azt mutatja, hogy a megadott fájltartalom be lett illesztve a megadott fájlokba a folyamokon keresztül:

Ez minden az írható adatfolyamok működéséről a Node.js-ben.

Következtetés

Írható adatfolyamokkal való munkához a „ createWriteStream() ' a ' fs ” modul objektum. A megcélzott fájl elérési útja, amelyre a tartalmat írni kell, paraméterként kerül átadásra. A tartalom másik adatfolyamból való írásához a „ .cső() ” módszert alkalmazzák. A ' ír() ” módszer akkor is hasznos, ha közvetlenül a megcélzott fájlba írunk tartalmat. Ez a bejegyzés bemutatta az írható adatfolyamokkal való munka folyamatát.