Gli stream in Node.js sono usati per gestire flussi di dati. Questi flussi possono essere sia lettura che scrittura, o entrambi. Gli stream sono particolarmente utili quando si lavora con grandi quantità di dati, poiché permettono di gestire questi dati pezzo per pezzo, invece di leggere tutto in una volta e riempire la memoria.
Ci sono 4 tipi di stream in Node.js:
1. Readable: stream da cui si possono leggere i dati, ma non scrivere.
1. Writeable: stream in cui si possono scrivere dati, ma non leggere.
1. Duplex: stream dove si possono leggere e scrivere dati.
1. Transform: Duplex stream che può modificare o trasformare i dati man mano che vengono scritti e letti.
```
const fs = require(‘fs’);
// Crea uno stream di lettura dal file
let readableStream = fs.createReadStream(‘input.txt’);
let data = ‘’;
// Gestisci l’evento ‘data‘
readableStream.on(‘data’, function(chunk) {
data += chunk;
});
// Gestisci l’evento ‘end‘
readableStream.on(‘end’, function() {
console.log(data);
});
```
Nell’esempio sopra, crea uno stream di lettura da un file ‘input.txt’. Ogni volta che viene letto un pezzo di dati (chiamato “chunk”), l’evento ‘data’ viene attivato e i dati vengono aggiunti alla variabile ‘data’. Quando non ci sono più dati da leggere, l’evento ‘end’ viene attivato e i dati vengono stampati sulla console.