Comment travailler avec des flux inscriptibles dans Node.js ?

Comment Travailler Avec Des Flux Inscriptibles Dans Node Js



Les données sont transférées sur le réseau entre les lieux source et destination sous forme de flux. Le côté émetteur est appelé source et le côté récepteur est représenté comme flux de destination. Grâce à ces flux, les données sous forme textuelle ou au format audio ou vidéo peuvent être envoyées et reçues avec un risque minimal de fuite ou de perte de données.

Ce guide explique l'utilisation de flux inscriptibles dans Node.js.

Comment travailler avec des flux inscriptibles dans Node.js ?

Le ' inscriptible ' Le flux peut être utilisé pour insérer de nouvelles données dans le fichier ou peut placer le contenu d'un autre flux aléatoire. La conversion ou le placement des données s'effectue principalement à l'aide du ' tuyau() ' méthode. Cette méthode rend le processus de conversion et d'attribution de contenu plus pratique tout en réduisant les risques de collision de données.







Syntaxe



Le flux inscriptible est créé en appelant la méthode ci-dessous :



fs. créerWriteStream ( 'fichiercible.ext' ) ;

Dans la syntaxe ci-dessus, le « createWriteStream() ' est invoqué par l'objet du ' importé ' fs ', et le fichier sur lequel les données vont être écrites est passé en paramètre.





Jetons un coup d'œil à quelques exemples de flux inscriptibles dans Node.js.

Exemple 1 : écriture du contenu d'un autre fichier à l'aide d'un flux inscriptible

Dans l'exemple ci-dessous, le fichier aléatoire est envoyé sur le flux lisible, puis le contenu de ce fichier est placé dans un autre fichier disponible sur le flux inscriptible :



était fsObj = exiger ( 'fs' ) ;

const flux de données = fsObj. créerReadStream ( 'monnouveaufichier1.txt' ) ;

const écrireStream = fsObj. créerWriteStream ( 'monnouveaufichier2.txt' ) ;

flux de données. tuyau ( écrireStream ) ;

Description du code ci-dessus :

  • Premièrement la ' fs ' Le module est importé et son objet est stocké dans le nouveau ' fsObj » variable.
  • Ensuite, avec l'aide de ' fasObj 'invoquer le' créerReadStream() ' méthode pour créer un flux lisible et transmettre le fichier lisible sélectionné comme paramètre.
  • Ensuite, le flux inscriptible est créé en appelant le «  créerWriteStream() » méthode pour écrire le contenu sur le fichier fourni.
  • Stockez les résultats des méthodes invoquées ci-dessus dans le dossier « flux de données ' et ' écrireStream 'variables respectivement.
  • Enfin, invoquez le « . tuyau() ' méthode suivie de ' flux de données ' et en commençant par le ' écrireStream ' variables.

Maintenant, exécutez le fichier contenant (controlFlow.js) en exécutant la commande ci-dessous :

Exemple 2 : écriture du contenu dans un fichier à l'aide de la méthode « stream.write() »

Dans cet exemple, le « écrire() ' La méthode est utilisée pour écrire des données sur le fichier disponible sur le Stream inscriptible :

était fsObj = exiger ( 'fs' ) ;
const httpObj = exiger ( 'http' ) ;

const servirLocaly = httpObj. créer un serveur ( ( demande de réponse ) => {
essayer {
const flux de cellules = fsObj. créerWriteStream ( 'monnouveaufichier2.txt' ) ;
cellStream. écrire ( 'Données à placer dans le fichier ciblé.' ) ;
cellStream. fin ( ) ;
réponse. fin ( « Données écrites via un flux inscriptible » )
}
attraper ( erreur ) {
console. erreur ( erreur ) ;
}
} ) ;
servirLocaly. é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 ' servirLocaly » variable.
  • Ensuite, utilisez un « essayer » bloquez à l’intérieur de la fonction de rappel de méthode et invoquez le « créerWriteStream() ' méthode utilisant le ' fsObj » variable.
  • Passez le fichier ciblé sur lequel le contenu doit être inséré, entre cette parenthèse de méthode et stockez le résultat dans le répertoire « flux de cellules ' variable
  • Utilisez le «  écrire() ' avec cette variable et passez un message factice entre ses parenthèses qui va être écrit dans le fichier ciblé.
  • Fermez le flux en appelant le «  fin() ' et affichez un message de réussite sur la page Web en appelant le ' réponse.end() ' méthode. Où ' réponse ' est le paramètre de rappel du ' créer un serveur ' méthode.
  • 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.

La sortie générée montre que le texte fourni a été écrit en utilisant le « écrire() ' méthode:

Exemple 3 : écriture des mêmes données sur plusieurs fichiers

Dans cet exemple, un seul fichier va être lu à partir du flux en utilisant le «  créerReadStream() ' méthode. Ensuite, le contenu lu est écrit sur plusieurs fichiers à l’aide du «  créerWriteStream() ' et ' .tuyau() » méthodes :

était fsObj = exiger ( 'fs' ) ;

const flux de données = fsObj. créerReadStream ( 'monnouveaufichier1.txt' ) ;

const écrireStream1 = fsObj. créerWriteStream ( 'monnouveaufichier2.txt' ) ;

const écrireStream2 = fsObj. créerWriteStream ( 'usecase.txt' ) ;

flux de données. tuyau ( écrireStream1 ) ;

flux de données. tuyau ( écrireStream2 ) ;

Dans l'extrait de code ci-dessus :

  • Le ' créerReadStream() ' La méthode est invoquée et le fichier dont le contenu doit être lu est passé en paramètre. Le résultat de cette méthode est stocké dans le dossier « flux de données » variables.
  • Ensuite, le « créerWriteStream() ' La méthode est appelée et le fichier ciblé est passé en paramètre.
  • De la même manière, le chemin du deuxième fichier est également transmis sous forme de flux inscriptible et les résultats sont stockés dans « écrireStream1 ' et ' écrireStream2 ' variables.
  • Après cela, en utilisant le ' .tuyau() ' méthode le contenu stocké dans le ' flux de données La variable ' est affectée à la variable ' écrireStream1 ' et ' écrireStream2 ' variables.

La sortie générée montre que le contenu du fichier fourni a été inséré dans les fichiers fournis via les flux :

Il s’agit du fonctionnement des flux inscriptibles dans Node.js.

Conclusion

Pour travailler avec des flux inscriptibles, la méthode de « créerWriteStream() » est invoqué via le « fs 'Objet module. Le chemin du fichier ciblé sur lequel le contenu doit être écrit est passé en paramètre. Pour écrire le contenu d'un autre flux, le ' .tuyau() 'La méthode est utilisée. Le ' écrire() ' La méthode est également utile lorsqu'il s'agit d'écrire du contenu directement sur le fichier ciblé. Cet article a illustré la procédure de travail avec des flux inscriptibles.