See juhend selgitab loetavate voogude kasutamist failis Node.js.
Kuidas kasutada loetavaid vooge rakenduses Node.js?
' Loetav ' vood luuakse ' looReadStream() ” ja loetud andmeid saab seejärel kuvada veebilehel, luues kohaliku serveri. Ürituse kuulajad abiga “ peal() ” saab loetavatele voogudele lisada ka meetodeid, et kuvada sõnumeid või teha konkreetseid toiminguid, kui faili lugemine algab või lõpeb.
Vaadake praktilise demonstratsiooni näidet.
Näide: sisu lugemine ja kuvamine serveri kaudu loetavate voogude abil
Selles näites loetakse esitatud faili sisu ja kuvatakse seejärel veebibrauseris:
konst fsObj = nõuda ( 'fs' ) ;
konst httpObj = nõuda ( 'http' ) ;
konst kohalik server = httpObj. looServer ( ( taotlus, vastus ) => {
proovige {
// Lugemiseks sihitud fail
konst dataStream = fsObj. looReadStream ( 'usecase.txt' ) ;
// Viige fail vastuseks
dataStream. toru ( vastuseks ) ;
} püüda ( vead ) {
konsool. viga ( vead ) ;
}
} ) ;
kohalik server. kuulake ( 8080 , ( ) => {
konsool. logi ( 'Server töötab kohaliku hosti pordi numbril: '8080' )
} ) ;
Ülaltoodud koodi kirjeldus on järgmine:
- Esmalt importige vajalik ' fs ” ja „ http ” mooduleid ja salvestada nende objektid fsObj ” ja „ httpObj ” muutujad.
- Järgmisena loodi server, kutsudes esile ' looServer() ' meetodit ja salvestage see äsja loodud server ' kohalik server ” muutuja.
- Seejärel kasutage ' proovige ' blokeerige meetodi tagasihelistamise funktsiooni sees ja käivitage ' looReadStream() ' meetodit kasutades ' fsObj ” muutuja.
- Edastage sihitud faili sisu, mida tuleb lugeda selle meetodi sulgudes ja salvestage tulemus ' dataStream ” muutuja.
- Sisestage ' dataStream ' muutuja ' .pipe() ” meetod vastuse saatmiseks.
- Kasutage ' püüda ” plokk, et käsitleda ilmnenud tõrkeid.
- Lõpuks kuulake või seadistage server pordi numbri kaudu ' 8080 ” ja kuvab oma tagasihelistamise funktsiooni abil eduteate.
Käivitage ülaltoodud koodi sisaldav fail (controlFlow.js), mis toimub alltoodud käsu kaudu:
sõlme juhtimineFlow. jsLoodud väljund näitab, et abiga ' .pipe() ” ja „ Loetav voog ”, failiandmed on loetud ja saadetud sihtkoha voogu, et kuvada veebilehel:
Näide 2: Staatiliste failide lokaalne lugemine ReadStreami abil
Sel juhul valitakse voo kohal pakutav fail ja selle sisu kuvatakse sündmusekuulajate abiga konsooliaknas:
konst fsObj = nõuda ( 'fs' ) ;konst streamObj = fsObj. looReadStream ( 'usecase.txt' ) ;
streamObj. peal ( 'andmed' , ( sisu ) => {
konsool. logi ( sisu. toString ( ) ) ;
} ) ;
streamObj. peal ( 'lõpp' , ( ) => {
konsool. logi ( ' \n Lõpetas faili lugemise.' ) ;
} ) ;
streamObj. toru ( protsessi. stdout ) ;
Ülaltoodud koodi kirjeldus on järgmine:
- Esiteks, ' fs moodul imporditakse ja selle objekt salvestatakse fsObj ” muutuja.
- Järgmisena kasutage ' fsObj ' kutsub esile ' looReadStream() ” meetodit ja edastab sihitud faili tee, mille sisu tuleb alla laadida. Salvestage meetodi tulemus uude muutujasse ' streamObj ”.
- Kinnitage ' peal() ” meetod 'streamObj'-ga, mis kutsub tagasihelistamise funktsiooni, kui ' andmeid ” otsitakse alla. Otsitud andmed edastatakse tagasihelistamise funktsiooni parameetrina, mis teisendab andmed stringvormingusse ja kuvab need konsooli kaudu.
- Lisage uuesti ' peal() ' meetod koos ' streamObj ” ja seekord kuvab selle tagasihelistamise funktsioon lõputeate, kui faili lugemine on lõppenud.
Pärast ülaltoodud koodi täitmist genereeritud väljund näitab, et lõputeate loetud andmed on kuvatud konsooli kohal:
See kõik puudutab loetavate voogude kasutamist failis Node.js.
Järeldus
Loetavate voogudega töötamiseks rakenduses Node.js kasutage meetodit ' looReadStream() ' kutsutakse välja '' kaudu fs ” mooduliobjekt. Sihitud failitee, millele sisu tuleb kirjutada, edastatakse seejärel meetodi parameetrina. Seda saab kasutada koos ' .pipe() ” meetod, et täita allalaaditud andmetega täiendavaid toiminguid, näiteks kirjutada sisu teise faili. See postitus on illustreerinud loetavate voogudega töötamise protseduuri.