Come lavorare con flussi scrivibili in Node.js?

Come Lavorare Con Flussi Scrivibili In Node Js



I dati vengono trasferiti sulla rete tra i luoghi di origine e di destinazione sotto forma di flussi. Il lato mittente è indicato come sorgente e il lato destinatario è rappresentato come flusso di destinazione. Utilizzando questi flussi, i dati in formato testuale o in formato audio o video possono essere inviati e ricevuti con possibilità minime di fuga o perdita di dati.

Questa guida spiega come lavorare con i flussi scrivibili in Node.js.

Come lavorare con flussi scrivibili in Node.js?

IL ' scrivibile 'il flusso può essere utilizzato per inserire nuovi dati nel file o posizionare il contenuto di un altro flusso casuale. La conversione o il posizionamento dei dati avviene principalmente con l'aiuto del ' tubo() ' metodo. Questo metodo rende più conveniente il processo di conversione e assegnazione dei contenuti riducendo al contempo le possibilità di collisione dei dati.







Sintassi



Il flusso scrivibile viene creato richiamando il metodo seguente:



fs. createWriteStream ( 'targetFile.ext' ) ;

Nella sintassi sopra, il ' creaWriteStream() ' viene invocato dall'oggetto importato ' fs ' e il file su cui verranno scritti i dati viene passato come parametro.





Diamo un'occhiata a un paio di esempi di flussi scrivibili in Node.js.

Esempio 1: scrittura del contenuto di un altro file utilizzando un flusso scrivibile

Nell'esempio seguente, il file casuale viene inviato tramite il flusso leggibile, quindi il contenuto del file viene inserito in un altro file disponibile nel flusso scrivibile:



era fsObj = richiedere ( 'fs' ) ;

cost flusso di dati = fsObj. creareReadStream ( 'mionuovofile1.txt' ) ;

cost writeStream = fsObj. createWriteStream ( 'mionuovofile2.txt' ) ;

flusso di dati. tubo ( writeStream ) ;

Descrizione del codice sopra:

  • Prima il ' fs ' viene importato e il suo oggetto viene memorizzato nel nuovo ' fsObj 'variabile.
  • Successivamente, con l’aiuto di “ fasObj ' invoca il ' createReadStream() ' per creare un flusso leggibile e passare il file leggibile selezionato come parametro.
  • Quindi, il flusso scrivibile viene creato invocando il comando ' createWriteStream() ' metodo per scrivere il contenuto sul file fornito.
  • Memorizzare i risultati dei metodi sopra richiamati nel file “ flusso di dati ' E ' writeStream 'variabili rispettivamente.
  • Infine, invoca il file “. tubo() ' metodo seguito da ' flusso di dati ' e in testa con il ' writeStream 'variabili.

Ora esegui il file contenente (controlFlow.js) eseguendo il comando seguente:

Esempio 2: scrittura del contenuto su file utilizzando il metodo 'stream.write()'.

In questo esempio, il ' scrivere() Il metodo ' viene utilizzato per scrivere i dati sul file disponibile sullo stream scrivibile:

era fsObj = richiedere ( 'fs' ) ;
cost httpObj = richiedere ( 'http' ) ;

cost serveLocaly = httpObj. creareServer ( ( richiedere risposta ) => {
Tentativo {
cost cellStream = fsObj. createWriteStream ( 'mionuovofile2.txt' ) ;
cellStream. scrivere ( 'Dati da inserire nel file di destinazione.' ) ;
cellStream. FINE ( ) ;
risposta. FINE ( 'Dati scritti tramite flusso scrivibile' )
}
presa ( errore ) {
consolle. errore ( errore ) ;
}
} ) ;
serveLocaly. Ascoltare ( 8080 , ( ) => {
consolle. tronco d'albero ( 'Il server è in esecuzione sul numero di porta dell'host locale: '8080' ' )
) ;

La descrizione del codice sopra è la seguente:

  • Innanzitutto, importa il 'richiesto' fs ' E ' http ' moduli e memorizzare i loro oggetti in ' fsObj ' E ' httpObj 'variabili rispettivamente.
  • Successivamente, il server è stato creato invocando il comando “ creaServer() ' e memorizzando questo server appena creato in un ' serveLocaly 'variabile.
  • Quindi, utilizzare un ' Tentativo ' all'interno della funzione di callback del metodo e invocare il ' createWriteStream() ' metodo utilizzando il metodo ' fsObj 'variabile.
  • Passa il file di destinazione su cui deve essere inserito il contenuto, all'interno di questa parentesi di metodo e memorizza il risultato nel campo ' cellStream 'variabile
  • Utilizza il ' scrivere() ' con questa variabile e passa un messaggio fittizio all'interno della sua parentesi che verrà scritto nel file di destinazione.
  • Chiudi lo stream invocando il comando ' FINE() ' e visualizza un messaggio di successo sulla pagina web invocando il metodo ' risposta.end() ' metodo. Dove ' risposta ' è il parametro di callback del ' creareServer ' metodo.
  • Utilizza il ' presa 'blocco per gestire eventuali errori verificatisi.
  • Infine, ascolta o configura il server sul numero di porta “ 8080 ' e visualizza il messaggio di successo con l'aiuto della sua funzione di richiamata.

L'output generato mostra che il testo fornito è stato scritto utilizzando il metodo ' scrivere() ' metodo:

Esempio 3: scrivere gli stessi dati su più file

In questo esempio, un singolo file verrà letto dallo stream utilizzando il comando ' createReadStream() ' metodo. Quindi, il contenuto letto viene scritto su più file utilizzando il comando ' createWriteStream() ' E ' .tubo() 'metodi:

era fsObj = richiedere ( 'fs' ) ;

cost flusso di dati = fsObj. creareReadStream ( 'mionuovofile1.txt' ) ;

cost writeStream1 = fsObj. createWriteStream ( 'mionuovofile2.txt' ) ;

cost scrivereStream2 = fsObj. createWriteStream ( 'usecase.txt' ) ;

flusso di dati. tubo ( writeStream1 ) ;

flusso di dati. tubo ( scrivereStream2 ) ;

Nello snippet di codice sopra:

  • IL ' createReadStream() ' viene richiamato il metodo e il file il cui contenuto deve essere letto viene passato come parametro. Il risultato di questo metodo viene memorizzato nel file “ flusso di dati 'variabile.
  • Successivamente, il “ createWriteStream() ' viene chiamato il metodo e il file di destinazione viene passato come parametro.
  • Allo stesso modo, anche il percorso del secondo file viene passato come flusso scrivibile e i risultati vengono archiviati in “ writeStream1 ' E ' scrivereStream2 'variabili.
  • Successivamente, utilizzando il comando “ .tubo() ' metodo il contenuto memorizzato nel ' flusso di dati La variabile ' è assegnata alla variabile ' writeStream1 ' E ' scrivereStream2 'variabili.

L'output generato mostra che il contenuto del file fornito è stato inserito nei file forniti negli stream:

Questo è tutto incentrato sul funzionamento dei flussi scrivibili in Node.js.

Conclusione

Per lavorare con flussi scrivibili, il metodo di “ createWriteStream() ' viene richiamato tramite il comando ' fs 'oggetto modulo. Il percorso del file di destinazione su cui deve essere scritto il contenuto viene passato come parametro. Per scrivere il contenuto da un altro flusso il ' .tubo() viene utilizzato il metodo '. IL ' scrivere() ' è utile anche quando si tratta di scrivere contenuti direttamente sul file di destinazione. Questo post ha illustrato la procedura per lavorare con flussi scrivibili.