Paano Gamitin ang Mga Nababasang Stream sa Node.js?

Paano Gamitin Ang Mga Nababasang Stream Sa Node Js



Ang data ay inililipat sa network sa pagitan ng nagpadala o pinagmulan at patutunguhan o receiver sa anyo ng mga stream. Ang mga stream na ito ay maaaring gawin at pagsamahin sa paggamit ng ilang mga pamamaraan, at ang mga audio o video file ay maaari ding ipasa sa stream. Ang nabasang data ay maaaring ipasok sa iba pang naka-target na mga file gamit ang ' sumulat() 'at' push() ” mga pamamaraan din.

Ipapaliwanag ng gabay na ito ang paggamit ng mga nababasang stream sa Node.js.

Paano Gamitin ang Mga Nababasang Stream sa Node.js?

Ang ' Nababasa Ang mga stream ay nilikha sa pamamagitan ng paggamit ng ' createReadStream() ” at ang nabasang data pagkatapos ay maaaring ipakita sa web page sa pamamagitan ng paglikha ng lokal na server. Ang mga tagapakinig ng kaganapan sa tulong ng ' sa() ” Ang mga pamamaraan ay maaari ding ilakip sa mga nababasang stream upang magpakita ng mga mensahe o magsagawa ng mga partikular na pagkilos kapag nagsimula o natapos ang pagbabasa ng file.







Tingnan ang halimbawa para sa isang praktikal na demonstrasyon.



Halimbawa: Pagbasa at Pagpapakita ng Nilalaman sa Server Gamit ang Mga Nababasang Stream

Sa halimbawang ito, ang nilalaman ng isang ibinigay na file ay binabasa at pagkatapos ay ipinapakita sa web browser:



const fsObj = nangangailangan ( 'fs' ) ;

const httpObj = nangangailangan ( 'http' ) ;

const localServer = httpObj. createServer ( ( kahilingan, tugon ) => {

subukan {
// Naka-target na File na Babasahin
const dataStream = fsObj. lumikhaReadStream ( 'usecase.txt' ) ;
// Pipe ang file upang tumugon
dataStream. tubo ( tugon ) ;
} mahuli ( mga pagkakamali ) {
console. pagkakamali ( mga pagkakamali ) ;
}
} ) ;

localServer. makinig ka ( 8080 , ( ) => {
console. log ( 'Ang Server ay Tumatakbo sa Localhost Port Number: '8080' ' )
} ) ;

Ang paglalarawan ng code sa itaas ay ang mga sumusunod:





  • Una, i-import ang kinakailangang ' fs 'at' http ” module at iimbak ang kanilang mga bagay sa “ fsObj 'at' httpObj ” mga variable ayon sa pagkakabanggit.
  • Susunod, ang server ay nilikha sa pamamagitan ng paggamit ng ' createServer() ” paraan at pag-iimbak nitong bagong likhang server sa isang “ localServer ” variable.
  • Pagkatapos, gumamit ng ' subukan ” i-block sa loob ng function ng callback ng method at i-invoke ang “ createReadStream() 'paraan gamit ang ' fsObj ” variable.
  • Ipasa ang naka-target na nilalaman ng file na kailangang basahin sa loob ng paraang ito sa panaklong at iimbak ang resulta sa ' dataStream ” variable.
  • Ipasok ang ' dataStream ” variable sa “ .pipe() ” paraan para ipadala ang tugon.
  • Gamitin ang ' mahuli ” block upang mahawakan ang anumang naganap na mga error.
  • Panghuli, makinig o i-set up ang server sa port number ' 8080 ” at ipakita ang mensahe ng tagumpay sa tulong ng callback function nito.

Ipatupad ang naglalaman ng file(controlFlow.js) ng code sa itaas na sa pamamagitan ng command na nakasaad sa ibaba:

node controlFlow. js

Ang nabuong output ay nagpapakita na sa tulong ng ' .pipe() 'at' Nababasang Stream ”, ang data ng file ay nabasa at ipinadala sa patutunguhang stream upang ipakita sa webpage:



Halimbawa 2: Pagbabasa ng Mga Static na File nang Lokal Gamit ang ReadStream

Sa kasong ito, pipiliin ang ibinigay na file sa stream at ang nilalaman nito ay ipapakita sa console window sa tulong ng mga tagapakinig ng kaganapan:

const fsObj = nangangailangan ( 'fs' ) ;

const streamObj = fsObj. lumikhaReadStream ( 'usecase.txt' ) ;

streamObj. sa ( 'data' , ( nilalaman ) => {

console. log ( nilalaman. toString ( ) ) ;

} ) ;

streamObj. sa ( 'tapos' , ( ) => {

console. log ( ' \n Tapos na basahin ang file.' ) ;

} ) ;

streamObj. tubo ( proseso. stdout ) ;

Ang paglalarawan ng code sa itaas ay ang mga sumusunod:

  • Una, ang ' fs 'Ang module ay na-import at ang object nito ay naka-imbak sa ' fsObj ” variable.
  • Susunod, gamit ang ' fsObj 'nanawagan sa' createReadStream() ” na paraan at ipinapasa ang landas ng naka-target na file na ang nilalaman ay kailangang makuha. Itago ang resulta ng pamamaraan sa isang bagong variable ' streamObj ”.
  • Ilakip ang ' sa() ” method na may “streamObj” na humihiling ng callback function kapag “ datos ” ay nakuha. Ang nakuhang data ay ipinapasa bilang isang parameter para sa callback function na nagko-convert ng data sa String format at ipinapakita ito sa ibabaw ng console.
  • Ilakip muli ang ' sa() 'paraan na may ' streamObj ” at sa pagkakataong ito ang callback function nito ay nagpapakita ng nagtatapos na mensahe kapag nakumpleto ang pagbabasa ng file.

Ang nabuong output pagkatapos isagawa ang code sa itaas ay nagpapakita na ang nabasang data kasama ang nagtatapos na mensahe ay ipinakita sa ibabaw ng console:

Iyon lang ang tungkol sa paggamit ng mga nababasang stream sa Node.js.

Konklusyon

Upang gumana sa mga nababasang stream sa Node.js, ang paraan ng “ createReadStream() ' ay hinihingi sa pamamagitan ng ' fs ” object ng module. Ang naka-target na landas ng file kung saan kailangang isulat ang nilalaman ay ipapasa bilang parameter ng pamamaraan. Maaari itong magamit sa ' .pipe() ” paraan upang magsagawa ng mga karagdagang gawain sa nakuhang data tulad ng pagsusulat ng nilalaman sa isa pang file. Ang post na ito ay naglalarawan ng pamamaraan ng pagtatrabaho sa mga nababasang stream.