Node.js Stream est un module natif fourni par Node.js pour gérer les flux de données. Un Stream est une abstraction qui représente un flux de données, comme un fichier ou un flux de données réseau. Il permet d’envoyer et de recevoir des données de manière efficace et en temps réel.
Il existe quatre types de flux :
1. Readable : pour lire les données du flux
2. Writable : pour écrire les données dans un flux
3. Duplex : peut à la fois lire et écrire les données du flux
4. Transform : un type de duplex qui peut modifier les données lors de la lecture ou de l’écriture
Pour utiliser les streams dans Node.js, vous devez d’abord acquérir le module ‘stream’. Voici un exemple de la façon dont vous pouvez le faire:
```
var stream = require(‘stream’);
```
Après avoir acquis le module, vous pouvez créer une instance d’un flux. Voici un exemple de la façon dont vous pouvez créer un flux lisible:
```
var readableStream = new stream.Readable();
// Pour lire à partir d’un flux lisible, vous pouvez utiliser la méthode ‘read’:
var data = readableStream.read();
```
De même, vous pouvez créer un flux inscriptible de la manière suivante:
```
var writableStream = new stream.Writable();
// Pour écrire dans un flux inscriptible, vous pouvez utiliser la méthode ‘write’:
writableStream.write(‘data’);
```
Dans l’utilisation réelle, les streams sont souvent utilisés avec des événements. Par exemple, un flux lisible émet un événement ‘data’ chaque fois qu’il y a des données à lire, et vous pouvez écouter cet événement comme ceci:
```
readableStream.on(‘data’, function(data) {
console.log(data);
});
```
De même, un flux inscriptible émet un événement ‘drain’ lorsque toutes les données ont été écrites dessus, et vous pouvez écouter cet événement comme ceci:
```
writableStream.on(‘drain’, function() {
console.log(‘all data has been written’);
});
```