Les streams sont des objets qui permettent de lire des données à partir d’une source ou d’écrire des données dans une destination de manière continue. En Node.js, il existe quatre types de streams : `Readable, Writable, Duplex` et `Transform`.
Voici comment vous pouvez utiliser les streams en Node.js:
1. Readble Stream: C’est le type de Stream à partir duquel on peut lire des données. Par exemple, si vous voulez lire les données à partir d’un fichier, vous pouvez utiliser `fs.createReadStream()`.
Exemple:
```
var fs = require(‘fs’);
var readableStream = fs.createReadStream(‘file.txt’);
readableStream.on(‘data’, function(chunk) {
console.log(chunk);
});
readableStream.on(‘end’, function() {
console.log(‘lecture terminée’);
});
```
1. Writable Stream: C’est le type de Stream dans lequel on peut écrire des données. Pour écrire dans un fichier, vous pouvez utiliser `fs.createWriteStream()`.
Exemple:
```
var fs = require(‘fs’);
var writableStream = fs.createWriteStream(‘file.txt’);
writableStream.write(‘Bonjour ‘);
writableStream.write(‘Monde’);
writableStream.end(‘!’);
```
1. Duplex Stream: Les streams duplex sont à la fois lisibles et inscriptibles. Un exemple de cela est un `net.Socket` en TCP.
1. Transform Stream: Les streams de transformation sont également à la fois lisibles et inscriptibles. Cependant, ils sont destinés à manipuler les données d’entrée en les transformant et en produisant des données de sortie.
Vous pouvez gérer les erreurs de stream en écoutant l’événement ‘error’:
```
stream.on(‘error’, function(err) {
console.log(‘Oh non, une erreur!’, err);
});
```
Note: Vous pouvez également utiliser les pipes (`.pipe()`) pour chaîner les streams. Vous pouvez prendre une sortie de stream et la connecter à une autre entrée de stream. Très souvent, ces sorties et entrées sont différentes, par exemple, lire dans un fichier et écrire dans une réponse HTTP.