Filhåndtering i node.JS ved hjelp av strømmer | Forklart med eksempler

Filhåndtering i node.JS ved hjelp av strømmer | Forklart med eksempler
Å bygge virkelige applikasjoner krever ofte at programmet kan samhandle med filer og filsystemer og bygge en applikasjon i NodeJS-miljøet er intet unntak. For denne datainteraksjonen med filer gjennom NodeJS er det bruken av konseptet med strømmer. Strømmer i NodeJS er ikke et bare node-konsept, det ble først implementert i et UNIX-basert operativsystem.

Strømmer er en måte å lese en filbit-for-bit og sende små biter av data til serveren i stedet for å lese en fil som helhet og deretter sende informasjon til serveren som en big datafil. Dette ser kanskje ikke ut som en stor avtale, men i virkeligheten sparer dette mye tid på serveren.

Strømmer i NodeJs

Strømmer fungerer som en kø ved hjelp av en buffer, en buffer er et lite midlertidig rom som brukes til å lagre en del av data som skal overføres. Buffer fungerer som en kø, hvis du vil overføre en stor mengde data fra et punkt til et annet, laster bufferen en del av data, og gir den på serveren, og venter på at serveren skal svare slik at den kan kaste Den delen av data fra køen. Mens det venter på serverens svar, laster den flere biter av data basert på størrelsen på bufferen som er satt av programmereren eller applikasjonen.

Hele denne prosessen med å få en del av filen, laste den inn i bufferen, og deretter analysere den delen til applikasjonen \ serveren er kjent som en Strøm. I nodejs er det tre forskjellige typer strømmer

  • Den skrivebeskyttede strømmen kalt den lesbare strømmen
  • Skrivestrømmen kalte den skrivbare strømmen
  • Les- og skrivestrømmen kalles duplexstrømmen

Lese data fra en fil gjennom strømmer i Nodejs

For å starte med opplæringen, må du bruke kommandoen i terminalen:

npm init -y

Dette vil lage et nytt nodeprosjekt for oss sammen med pakken.JSON -fil i katalogen vår

For å lese noen data fra en fil ved hjelp av Nodejs, trenger du en fil med litt tekst i den. Opprett derfor en ny tekstfil og plasser noen “Lorem Ipsum” Tekst ved hjelp av Lorem Ipsum -generatoren.

Kopier denne teksten, og legg den i tekstfilen og lagre tekstfilen:

Som du ser er navnet på tekstfilen “MyData.tekst". Opprett en ny JavaScript -fil i samme katalog og navngi den “Streamdemo.JS ”

For å lage en lese- eller skrivestrøm må vi bruke “FS” Modul som kommer som en innebygd modul i nodemiljøet. Å inkludere fs Modul i programmet ditt Bruk følgende kodelinjer:

var fs = krever ("fs");

Deretter må vi opprette en lesestrøm fra tekstfilen vår (som er plassert i samme katalog som StreamDemo.JS -fil) ved hjelp av følgende linje:

var myReadStream = fs.CreateReadStream (__ Dirname + '/MyData.tekst');

Nå kan vi bruke denne variabelen “MyReadStream” For å utføre en oppgave hver gang den mottar en ny del av data. Brukes til å følge kodelinjer for å skrive ut biten på konsollen hver gang strømmen vår får en ny del:

MyReadStream.på ("data", funksjon (chunk)
konsoll.Log ("New Chunk har blitt akseptert av programmet");
konsoll.logg (chunk);
);

For å kjøre dette programmet, i terminaltypen følgende kommando:

Node Streamdemo

Du vil se følgende utgang i konsollen din:

Som du ser, kunne vi motta og skrive ut dataene fra filen vår, men dataene vi får på konsollen er imidlertid ikke de samme som den vi har i filen vår. Dette er fordi vi må sette en kodingsprosedyre i lesestrømmen. Alter, linjen i lesestrømmen for å matche følgende kodeinje:

var myReadStream = fs.CreateReadStream (__ Dirname + '/MyData.txt ', "utf8");

Som du ser har vi lagt til “UTF8” koding til strømmen vår. Nå hvis vi kjører på nytt ved å bruke “Node streamdemo” Kommando Vi får følgende resultat på terminalen vår:

Og der du går, leser vi riktige data fra filen og skriver den ut på konsollen

Skrive data til en fil gjennom strømmer i Nodejs

Vi kan skrive til en fil ved hjelp av skrivestrømmen i NodeJs som også kommer med modulen “FS”. Vi vil skrive dataene vi mottok i forrige seksjon og skrive den en ny fil som vi skal skrive.tekst

For å skrive data til en fil skal vi opprette en ny skrivestrøm Bruke følgende kodelinje:

var myWritestream = fs.CreateWritestream (__ Dirname + '/Writinme.txt ', "utf8");

Som du kan legge merke til, har vi allerede inkludert “UTF8” koding i skrivestrømmen. Å skrive biten vi mottar fra “MyData” Tekstfil til den nye filen Vi skal bruke følgende kode:

MyReadStream.på ("data", funksjon (chunk)
konsoll.Log ("New Chunk har blitt akseptert av programmet");
MyWritestream.skriv (chunk);
konsoll.Logg ("Chunk skrevet til den nye tekstfilen");
);

Utfør programmet ved å bruke kommandoen:

Node Streamdemo

Du får følgende utdata:

Som du kan se i utforskeren av kodeditoren din at en ny filtekst automatisk ble opprettet, og hvis dobbeltklikk på "skrivinme ” Tekstfil Du vil se følgende data i den filen:

Så fra bildet over er det tydelig at vi klarte å skrive data til en fil ved hjelp av strømmer

Konklusjon

Strømmer brukes til å laste inn data til fra en fil av \ på applikasjonen bit-for-bit eller i små biter. Vi kan lese og skrive data ved å bruke strømmer som er inkludert i FS (filsystem) modul. Filsystemet (FS) -modulen kommer som en innebygd modul med NodeJS. Det er tre forskjellige typer bekker, nemlig: lesbar strøm, skrivbar strøm og dupleksstrømmen. I dette innlegget implementerte vi et enkelt nodeprogram som tillot oss å lese data fra en fil og skrive det til en annen fil ved hjelp av datastrømmer og buffere.