Node.js Streams

Working with streams for efficient data processing

Readable Stream

const fs = require('fs');
const readStream = fs.createReadStream('file.txt');
readStream.on('data', (chunk) => { # read data
    console.log(chunk);
});

Writable Stream

const writeStream = fs.createWriteStream('output.txt');
writeStream.write('Hello World'); # write data
writeStream.end(); # close stream

Pipe

const readStream = fs.createReadStream('input.txt');
const writeStream = fs.createWriteStream('output.txt');
readStream.pipe(writeStream); # pipe streams

Transform Stream

const { Transform } = require('stream');
const upperCase = new Transform({
    transform(chunk, encoding, callback) {
        this.push(chunk.toString().toUpperCase());
        callback();
    }
});

Stream Events

stream.on('data', chunk => { }); # data chunk received
stream.on('end', () => { }); # stream ended
stream.on('error', err => { }); # error occurred