Hur man arbetar med skrivbara strömmar i Node.js?

Hur Man Arbetar Med Skrivbara Strommar I Node Js



Data överförs över nätverket mellan käll- och destinationsplatser i form av strömmar. Sändarsidan hänvisas till som källan och mottagarsidan representeras som destinationsströmmen. Genom att använda dessa strömmar kan data i textform eller ljud- eller videoformat skickas och tas emot med minimala risker för dataläckage eller förlust.

Den här guiden förklarar hur du arbetar med skrivbara strömmar i Node.js.

Hur man arbetar med skrivbara strömmar i Node.js?

den ' skrivbar ” ström kan användas för att infoga ny data i filen eller kan placera innehållet i en annan slumpmässig ström. Datakonverteringen eller placeringen sker oftast med hjälp av ' rör() 'metoden. Denna metod gör processen att konvertera och tilldela innehåll bekvämare samtidigt som risken för kollision av data minskar.







Syntax



Den skrivbara strömmen skapas genom att anropa följande metod:



fs. skapaWriteStream ( 'targetFile.ext' ) ;

I ovanstående syntax, ' creatWriteStream() ” anropas av objektet för den importerade ” fs ”-modulen, och filen som data ska skrivas på skickas som en parameter.





Låt oss ta en titt på ett par exempel på skrivbara strömmar i Node.js.

Exempel 1: Skriva innehållet i en annan fil med en skrivbar ström

I exemplet nedan skickas den slumpmässiga filen över den läsbara Stream, och sedan placeras detta filinnehåll i en annan fil tillgänglig på den skrivbara Stream:



var fsObj = behöva ( 'fs' ) ;

konst dataström = fsObj. skapaReadStream ( 'minnyfil1.txt' ) ;

konst writeStream = fsObj. skapaWriteStream ( 'minnyfil2.txt' ) ;

dataström. rör ( writeStream ) ;

Beskrivning av ovanstående kod:

  • Först, ' fs ”-modulen importeras och dess objekt lagras i den nya ” fsObj ” variabel.
  • Därefter, med hjälp av ' fasObj ' åberopa ' createReadStream() ”-metod för att skapa en läsbar ström och skicka den valda läsbara filen som parameter.
  • Sedan skapas den skrivbara strömmen genom att anropa ' createWriteStream() ”-metod för att skriva innehållet på den medföljande filen.
  • Lagra resultaten av de ovan åberopade metoderna i ' dataström ' och ' writeStream ” respektive variabler.
  • Slutligen, åberopa '. rör() metod följt av dataström ” och leder med ” writeStream ” variabler.

Kör nu den innehållande filen (controlFlow.js) genom att köra kommandot nedan:

Exempel 2: Skriva innehållet till filen med metoden 'stream.write()'.

I det här exemplet är ' skriva() ”-metoden används för att skriva data över filen som är tillgänglig över den skrivbara Stream:

var fsObj = behöva ( 'fs' ) ;
konst httpObj = behöva ( 'http' ) ;

konst servera lokalt = httpObj. skapaServer ( ( begäran, svar ) => {
Prova {
konst cellStream = fsObj. skapaWriteStream ( 'minnyfil2.txt' ) ;
cellStream. skriva ( 'Data som ska placeras i målfilen.' ) ;
cellStream. slutet ( ) ;
svar. slutet ( 'Data skrivna via skrivbar ström' )
}
fånga ( fel ) {
trösta. fel ( fel ) ;
}
} ) ;
servera lokalt. lyssna ( 8080 , ( ) => {
trösta. logga ( 'Server körs på Localhost Portnummer: '8080' ' )
) ;

Beskrivningen av ovanstående kod är följande:

  • Importera först den nödvändiga ' fs ' och ' http '-moduler och lagra deras objekt i ' fsObj ' och ' httpObj ” respektive variabler.
  • Därefter har servern skapats genom att anropa ' createServer() '-metoden och lagra denna nyskapade server i en ' servera lokalt ” variabel.
  • Använd sedan en ' Prova ' blockera inuti metodåteruppringningsfunktionen och anropa ' createWriteStream() ' metoden med ' fsObj ” variabel.
  • Skicka den riktade filen på vilken innehållet måste infogas, inom denna metodparentes och lagra resultatet i ' cellStream ” variabel
  • Använd ' skriva() ”-metoden med denna variabel och skicka ett dummy-meddelande inom dess parentes som kommer att skrivas i målfilen.
  • Stäng strömmen genom att anropa ' slutet() '-metoden och visa ett framgångsmeddelande över webbsidan genom att anropa ' response.end() 'metoden. Var ' svar ' är återuppringningsparametern för ' skapaServer 'metoden.
  • Använd ' fånga ” block för att hantera eventuella fel.
  • Slutligen, lyssna eller ställ in servern över portnumret ' 8080 ” och visa framgångsmeddelandet med hjälp av dess återuppringningsfunktion.

Den genererade utdata visar att den tillhandahållna texten har skrivits med hjälp av ' skriva() ' metod:

Exempel 3: Att skriva samma data på flera filer

I det här exemplet kommer en enskild fil att läsas från strömmen med hjälp av ' createReadStream() 'metoden. Sedan skrivs det lästa innehållet över flera filer med hjälp av ' createWriteStream() ' och ' .rör() ' metoder:

var fsObj = behöva ( 'fs' ) ;

konst dataström = fsObj. skapaReadStream ( 'minnyfil1.txt' ) ;

konst skrivStream1 = fsObj. skapaWriteStream ( 'minnyfil2.txt' ) ;

konst skrivStream2 = fsObj. skapaWriteStream ( 'usecase.txt' ) ;

dataström. rör ( skrivStream1 ) ;

dataström. rör ( skrivStream2 ) ;

I kodavsnittet ovan:

  • den ' createReadStream() ”-metoden anropas och filen vars innehåll måste läsas skickas som dess parameter. Resultatet av denna metod lagras i ' dataström ” variabel.
  • Därefter ' createWriteStream() ”-metoden anropas och målfilen skickas som dess parameter.
  • På samma sätt skickas även sökvägen till den andra filen som en skrivbar ström och resultaten lagras i ' skrivStream1 ' och ' skrivStream2 ” variabler.
  • Efter det använder du ' .rör() ' metoden innehållet som lagras i ' dataström variabeln tilldelas till skrivStream1 ' och ' skrivStream2 ” variabler.

Den genererade utdata visar att det tillhandahållna filinnehållet har infogats i de tillhandahållna filerna över strömmarna:

Det handlar om hur skrivbara strömmar fungerar i Node.js.

Slutsats

För att arbeta med skrivbara strömmar, metoden för ' createWriteStream() ' anropas via ' fs ” modulobjekt. Den riktade filsökvägen som innehållet behöver skrivas på skickas som dess parameter. För att skriva innehållet från en annan ström .rör() ”-metoden används. den ' skriva() ”-metoden är också användbar när det gäller att skriva innehåll direkt på den riktade filen. Det här inlägget har illustrerat proceduren för att arbeta med skrivbara strömmar.