Comment utiliser des flux lisibles dans Node.js ?

Comment Utiliser Des Flux Lisibles Dans Node Js



Les données sont transférées sur le réseau entre les côtés expéditeur ou source et destination ou récepteur sous forme de flux. Ces flux peuvent être créés et combinés à l’aide de plusieurs méthodes, et les fichiers audio ou vidéo peuvent également être transmis via le flux. Les données lues peuvent être insérées dans d’autres fichiers ciblés en utilisant « écrire() ' et ' pousser() » méthodes également.

Ce guide expliquera l'utilisation des flux lisibles dans Node.js.

Comment utiliser des flux lisibles dans Node.js ?

Le ' Lisible ' Les flux sont créés en invoquant le ' créerReadStream() » et les données lues peuvent ensuite être affichées sur la page Web en créant le serveur local. Les auditeurs de l’événement avec l’aide de « sur() ' Des méthodes peuvent également être attachées aux flux lisibles pour afficher des messages ou effectuer des actions spécifiques lorsque la lecture du fichier commence ou se termine.







Jetez un œil à l’exemple pour une démonstration pratique.



Exemple : lecture et affichage de contenu sur le serveur à l'aide de flux lisibles

Dans cet exemple, le contenu d'un fichier fourni est lu puis affiché sur le navigateur Web :



const fsObj = exiger ( 'fs' ) ;

const httpObj = exiger ( 'http' ) ;

const serveur local = httpObj. créer un serveur ( ( demande de réponse ) => {

essayer {
// Fichier ciblé à lire
const flux de données = fsObj. créerReadStream ( 'usecase.txt' ) ;
// Dirige le fichier vers la réponse
flux de données. tuyau ( réponse ) ;
} attraper ( les erreurs ) {
console. erreur ( les erreurs ) ;
}
} ) ;

serveur local. écouter ( 8080 , ( ) => {
console. enregistrer ( 'Le serveur s'exécute sur le numéro de port Localhost : '8080' ' )
} ) ;

La description du code ci-dessus est la suivante :





  • Tout d’abord, importez le « requis » fs ' et ' http ' modules et stocker leurs objets dans ' fsObj ' et ' httpObj 'variables respectivement.
  • Ensuite, le serveur a été créé en appelant le «  créerServeur() ' et stocker ce serveur nouvellement créé dans un ' serveur local » variable.
  • Ensuite, utilisez un « essayer » bloquez à l’intérieur de la fonction de rappel de méthode et invoquez le « créerReadStream() ' méthode utilisant le ' fsObj » variable.
  • Passez le contenu du fichier ciblé qui doit être lu entre cette parenthèse de méthode et stockez le résultat dans le répertoire « flux de données » variable.
  • Insérez le « flux de données ' variable dans le ' .tuyau() » méthode pour envoyer la réponse.
  • Utilisez le «  attraper 'Bloquer pour gérer les erreurs survenues.
  • Enfin, écoutez ou configurez le serveur via le numéro de port ' 8080 ' et affichez le message de réussite à l'aide de sa fonction de rappel.

Exécutez le fichier contenant (controlFlow.js) du code ci-dessus via la commande indiquée ci-dessous :

contrôle du nœudFlow. js

La sortie générée montre qu’avec l’aide de « .tuyau() ' et ' Flux lisible », les données du fichier ont été lues et envoyées au flux de destination pour être affichées sur la page Web :



Exemple 2 : Lecture de fichiers statiques localement à l'aide de ReadStream

Dans ce cas, le fichier fourni sur le flux est sélectionné et son contenu est ensuite affiché sur la fenêtre de la console à l'aide d'écouteurs d'événements :

const fsObj = exiger ( 'fs' ) ;

const fluxObj = fsObj. créerReadStream ( 'usecase.txt' ) ;

fluxObj. sur ( 'données' , ( contenu ) => {

console. enregistrer ( contenu. versChaîne ( ) ) ;

} ) ;

fluxObj. sur ( 'fin' , ( ) => {

console. enregistrer ( ' \n J'ai fini de lire le fichier. ) ;

} ) ;

fluxObj. tuyau ( processus. sortie standard ) ;

La description du code ci-dessus est la suivante :

  • Premièrement la ' fs ' Le module est importé et son objet est stocké dans le dossier ' fsObj » variable.
  • Ensuite, en utilisant ' fsObj » invoque le « créerReadStream() ' et transmet le chemin du fichier ciblé dont le contenu doit être récupéré. Stocker le résultat de la méthode dans une nouvelle variable « fluxObj ».
  • Joindre le «  sur() » avec « streamObj » qui appelle une fonction de rappel lorsque « données » est récupéré. Les données récupérées sont transmises en tant que paramètre à la fonction de rappel qui convertit les données au format String et les affiche sur la console.
  • Joignez à nouveau le « sur() ' méthode avec ' fluxObj » et cette fois sa fonction de rappel affiche un message de fin lorsque la lecture du fichier est terminée.

La sortie générée après l'exécution du code ci-dessus montre que les données lues le long du message de fin ont été affichées sur la console :

Tout dépend de l’utilisation de flux lisibles dans Node.js.

Conclusion

Pour travailler avec des flux lisibles dans Node.js, la méthode de « créerReadStream() » est invoqué via le « fs 'Objet module. Le chemin du fichier ciblé sur lequel le contenu doit être écrit est ensuite transmis comme paramètre de méthode. Il peut être utilisé avec le ' .tuyau() ' pour effectuer d'autres tâches sur les données récupérées, comme écrire le contenu dans un autre fichier. Cet article a illustré la procédure de travail avec des flux lisibles.