Streams

45 min Niveau 6

Que sont les Streams ?

Les streams sont des objets qui vous permettent de lire des données depuis une source ou d'écrire des données vers une destination de manière continue. Dans Node.js, il y a quatre types de streams :

  • Readable - Stream qui est utilisé pour les opérations de lecture.
  • Writable - Stream qui est utilisé pour les opérations d'écriture.
  • Duplex - Stream qui peut être utilisé pour les opérations de lecture et d'écriture.
  • Transformer - Un type de flux duplex où la sortie est calculée sur la base de l'entrée.

Chaque type de streams est une instance d'EventEmitter et lance plusieurs événements à des moments différents. Par exemple, les événements les plus couramment utilisés sont les suivants :

  • data - Cet événement est déclenché lorsque des données sont disponibles pour la lecture.
  • end - Cet événement est déclenché lorsqu'il n'y a plus de données à lire.
  • error - Cet événement est déclenché en cas d'erreur de réception ou d'écriture de données.
  • finish - Cet événement est déclenché lorsque toutes les données ont été transférées vers le système sous-jacent.

Ce cours fournit une compréhension de base des opérations couramment utilisées sur les streams.

Lecture d'un Stream

Créez un fichier texte nommé input.txt ayant le contenu suivant :

Microlead, le chemin vers le succès !!!!!

Créez un fichier js nommé main.js avec le code suivant :

var fs = require("fs");
var data = '';

// Create a readable stream
var readerStream = fs.createReadStream('input.txt');

// Set the encoding to be utf8. 
readerStream.setEncoding('UTF8');

// Handle stream events --> data, end, and error
readerStream.on('data', function(chunk) {
    data += chunk;
});

readerStream.on('end',function() {
    console.log(data);
});

readerStream.on('error', function(err) {
    console.log(err.stack);
});

console.log("Program Ended");

Maintenant, exécutez le fichier main.js pour voir le résultat :

$ node main.js

Vérifier la sortie.

Program Ended
Microlead, le chemin vers le succès !!!!!
logo discord

Besoin d'aide ?

Rejoignez notre communauté officielle et ne restez plus seul à bloquer sur un problème !

En savoir plus