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.