Questa guida spiegherà l'utilizzo dei flussi leggibili in Node.js.
Come utilizzare i flussi leggibili in Node.js?
IL ' Leggibile I flussi vengono creati invocando il comando ' createReadStream() ' e i dati letti possono quindi essere visualizzati sulla pagina Web creando il server locale. Gli ascoltatori dell'evento con l'aiuto di “ SU() È inoltre possibile allegare metodi ai flussi leggibili per visualizzare messaggi o eseguire azioni specifiche quando inizia o termina la lettura del file.
Dai un'occhiata all'esempio per una dimostrazione pratica.
Esempio: lettura e visualizzazione di contenuto sul server utilizzando flussi leggibili
In questo esempio, il contenuto di un file fornito viene letto e quindi visualizzato nel browser web:
cost fsObj = richiedere ( 'fs' ) ;
cost httpObj = richiedere ( 'http' ) ;
cost localServer = httpObj. creareServer ( ( richiedere risposta ) => {
Tentativo {
// File mirato da leggere
cost flusso di dati = fsObj. creareReadStream ( 'usecase.txt' ) ;
// Invia il file alla risposta
flusso di dati. tubo ( risposta ) ;
} presa ( errori ) {
consolle. errore ( errori ) ;
}
} ) ;
localServer. 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 ' localServer 'variabile.
- Quindi, utilizzare un ' Tentativo ' all'interno della funzione di callback del metodo e invocare il ' createReadStream() ' metodo utilizzando il metodo ' fsObj 'variabile.
- Passa il contenuto del file di destinazione che deve essere letto all'interno di questa parentesi del metodo e memorizza il risultato nel campo ' flusso di dati 'variabile.
- Inserisci il “ flusso di dati ' variabile nella ' .tubo() ' metodo per inviare la risposta.
- 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.
Esegui il file contenente (controlFlow.js) del codice precedente tramite il comando indicato di seguito:
nodo controlloFlusso. jsL'output generato mostra che con l'aiuto di ' .tubo() ' E ' Flusso leggibile ”, i dati del file sono stati letti e inviati al flusso di destinazione per essere visualizzati sulla pagina web:
Esempio 2: lettura di file statici localmente utilizzando ReadStream
In questo caso, il file fornito sullo stream viene selezionato e il suo contenuto viene quindi visualizzato nella finestra della console con l'aiuto dei listener di eventi:
cost fsObj = richiedere ( 'fs' ) ;cost streamObj = fsObj. creareReadStream ( 'usecase.txt' ) ;
streamObj. SU ( 'dati' , ( contenuto ) => {
consolle. tronco d'albero ( contenuto. accordare ( ) ) ;
} ) ;
streamObj. SU ( 'FINE' , ( ) => {
consolle. tronco d'albero ( ' \N Ho finito di leggere il file.' ) ;
} ) ;
streamObj. tubo ( processi. stdout ) ;
La descrizione del codice sopra è la seguente:
- Prima il ' fs ' viene importato e il suo oggetto viene memorizzato nella cartella ' fsObj 'variabile.
- Successivamente, utilizzando “ fsObj ' invoca il ' createReadStream() ' e passa il percorso del file di destinazione il cui contenuto deve essere recuperato. Memorizza il risultato del metodo in una nuova variabile “ streamObj ”.
- Allega il “ SU() ' con 'streamObj' che richiama una funzione di callback quando ' dati ' viene recuperato. I dati recuperati vengono passati come parametro per la funzione di callback che converte i dati in formato String e li visualizza sulla console.
- Allega nuovamente il ' SU() ' metodo con ' streamObj ' e questa volta la sua funzione di callback visualizza un messaggio finale quando la lettura del file viene completata.
L'output generato dopo l'esecuzione del codice precedente mostra che i dati letti lungo il messaggio finale sono stati visualizzati sulla console:
Questo è tutto incentrato sull'utilizzo di flussi leggibili in Node.js.
Conclusione
Per lavorare con flussi leggibili in Node.js, il metodo di “ createReadStream() ' viene richiamato tramite il comando ' fs 'oggetto modulo. Il percorso del file di destinazione su cui deve essere scritto il contenuto viene quindi passato come parametro del metodo. Può essere utilizzato con il ' .tubo() ' Metodo per eseguire ulteriori attività sui dati recuperati come scrivere il contenuto in un altro file. Questo post ha illustrato la procedura per lavorare con flussi leggibili.