Tämä opas selittää luettavien virtojen käytön Node.js:ssä.
Kuinka käyttää luettavia virtoja Node.js:ssä?
' Luettavissa ' -virrat luodaan kutsumalla ' luoReadStream() ” ja luetut tiedot voidaan sitten näyttää verkkosivulla luomalla paikallinen palvelin. Tapahtuman kuuntelijat ' päällä() ” -menetelmiä voidaan myös liittää luettaviin virtoihin viestien näyttämiseksi tai tiettyjen toimien suorittamiseksi, kun tiedoston lukeminen alkaa tai päättyy.
Katso esimerkkiä käytännön esittelyä varten.
Esimerkki: Sisällön lukeminen ja näyttäminen palvelimella käyttämällä luettavia virtoja
Tässä esimerkissä toimitetun tiedoston sisältöä luetaan ja näytetään sitten verkkoselaimen kautta:
konst fsObj = vaatia ( 'fs' ) ;
konst httpObj = vaatia ( 'http' ) ;
konst paikallinen palvelin = httpObj. createServer ( ( pyyntö, vastaus ) => {
yrittää {
// Kohdennettu tiedosto luettavaksi
konst dataStream = fsObj. luodaReadStream ( 'usecase.txt' ) ;
// Liitä tiedosto vastaukseen
dataStream. putki ( vastaus ) ;
} ottaa kiinni ( virheitä ) {
konsoli. virhe ( virheitä ) ;
}
} ) ;
paikallinen palvelin. kuunnella ( 8080 , ( ) => {
konsoli. Hirsi ( 'Palvelin toimii Localhost-portin numerolla: '8080'' )
} ) ;
Yllä olevan koodin kuvaus on seuraava:
- Tuo ensin tarvittava ' fs ' ja ' http ' moduuleja ja tallentaa niiden objektit ' fsObj ' ja ' httpObj ” muuttujia vastaavasti.
- Seuraavaksi palvelin on luotu kutsumalla ' createServer() ' -menetelmää ja tallentamalla tämä äskettäin luotu palvelin ' paikallinen palvelin ”muuttuja.
- Käytä sitten ' yrittää ' -lohko menetelmän takaisinkutsutoiminnon sisällä ja kutsu ' luoReadStream() ' menetelmällä ' fsObj ”muuttuja.
- Välitä kohdistettu tiedoston sisältö, joka on luettava tämän menetelmän sulkeissa ja tallenna tulos ' dataStream ”muuttuja.
- Aseta ' dataStream ' muuttuja ' .putki() ' tapa lähettää vastaus.
- Käytä ' ottaa kiinni ”-lohko käsitelläksesi mahdollisia virheitä.
- Lopuksi kuuntele tai asenna palvelin portin numeron kautta ' 8080 ” ja näyttää onnistumisviestin takaisinsoittotoiminnon avulla.
Suorita yllä olevan koodin sisältävä tiedosto (controlFlow.js), joka tapahtuu alla olevan komennon kautta:
solmun ohjausFlow. jsLuotu tulos osoittaa, että '' .putki() ' ja ' Luettava stream ”, tiedostotiedot on luettu ja lähetetty kohdevirtaan näytettäväksi verkkosivulla:
Esimerkki 2: Staattisten tiedostojen lukeminen paikallisesti ReadStreamin avulla
Tässä tapauksessa streamin yli toimitettu tiedosto valitaan ja sen sisältö näytetään sitten konsoli-ikkunassa tapahtumakuuntelijoiden avulla:
konst fsObj = vaatia ( 'fs' ) ;konst streamObj = fsObj. luodaReadStream ( 'usecase.txt' ) ;
streamObj. päällä ( 'data' , ( sisältö ) => {
konsoli. Hirsi ( sisältö. toString ( ) ) ;
} ) ;
streamObj. päällä ( 'loppu' , ( ) => {
konsoli. Hirsi ( ' \n Lopetin tiedoston lukemisen.' ) ;
} ) ;
streamObj. putki ( käsitellä asiaa. stdout ) ;
Yllä olevan koodin kuvaus on seuraava:
- Ensinnäkin ' fs ' moduuli tuodaan ja sen objekti tallennetaan ' fsObj ”muuttuja.
- Seuraavaksi käytä ' fsObj ' kutsuu ' luoReadStream() ” -menetelmää ja välittää sen kohdetiedoston polun, jonka sisältö on haettava. Tallenna menetelmän tulos uuteen muuttujaan ' streamObj ”.
- Liitä ' päällä() ' -menetelmällä 'streamObj', joka kutsuu takaisinsoittotoiminnon, kun ' tiedot ' haetaan. Haettu data välitetään takaisinsoittotoiminnon parametrina, joka muuntaa tiedot merkkijonomuotoon ja näyttää sen konsolin kautta.
- Liitä uudelleen ' päällä() ' menetelmä '' streamObj ” ja tällä kertaa sen takaisinsoittotoiminto näyttää lopetusviestin, kun tiedoston lukeminen on valmis.
Yllä olevan koodin suorittamisen jälkeen luotu tulos osoittaa, että loppuviestin luetut tiedot on näytetty konsolin yli:
Tämä kaikki koskee luettavien streamien käyttöä Node.js:ssä.
Johtopäätös
Jos haluat työskennellä luettavien virtojen kanssa Node.js:ssä, käytä menetelmää ' luoReadStream() ' kutsutaan '' kautta fs ” moduuliobjekti. Kohdennettu tiedostopolku, jolle sisältö on kirjoitettava, välitetään sitten menetelmäparametrina. Sitä voidaan käyttää ' .putki() ” -menetelmää, jolla voit suorittaa lisätehtäviä haetuille tiedoille, kuten kirjoittaa sisällön toiseen tiedostoon. Tämä viesti on havainnollistanut työskentelymenettelyä luettavien virtojen kanssa.