Node.js Stream is een van de kern-API’s in Node.js die gebruikt wordt voor het lezen van data uit een bron of het schrijven van data naar een bestemming op een continue basis. Dit is bijzonder nuttig bij het verwerken van grote hoeveelheden data, zoals het lezen van een groot bestand, omdat je niet hoeft te wachten tot alle data geladen is om te beginnen met de verwerking. In plaats daarvan kan je de data in stukjes, of ‘chunks’, verwerken naarmate ze binnenkomen.
Er zijn vier basistypes van streams in Node.js:
1. Readable: Voor het lezen van data. Bijvoorbeeld, als je een bestand leest.
1. Writable: Voor het schrijven van data. Bijvoorbeeld, als je een bestand schrijft.
1. Duplex: Zowel voor het lezen als schrijven van data. Bijvoorbeeld, een websockets-connectie.
1. Transform: Eeen type duplex-stream dat de data kan transformeren tijdens het lezen en schrijven. Bijvoorbeeld, voor het comprimeren of decomprimeren van data.
Hier is een basaal voorbeeld van hoe je een readable stream zou kunnen gebruiken in Node.js om een bestand te lezen:
```
const fs = require(‘fs’);
let readableStream = fs.createReadStream(‘path_to_your_file’);
readableStream.on(‘data’, function(chunk) {
console.log(`Received ${chunk.length} bytes of data.`);
});
readableStream.on(‘end’, function() {
console.log(‘There is no more data to read.’);
});
```
In dit voorbeeld wordt de ‘fs’ (file system) module van Node.js gebruikt om een readable stream te creëren van een bestand. Elke keer als een ‘chunk’ data wordt gelezen van het bestand, wordt een ‘data’ event getriggerd en de callback functie wordt uitgevoerd om het aantal ontvangen bytes te tonen. Wanneer alle data is gelezen, wordt een ‘end’ event getriggerd en de callback functie wordt uitgevoerd om aan te geven dat er geen data meer is om te lezen.