Node.js & Libuv•Part 3: Streams, Buffers & Core Modules (21 - 35)
4 Fundamental Stream Types.
In Simple Words:
- Readable: Source of data (
fs.createReadStream, HTTP request). - Writable: Destination for data (
fs.createWriteStream, HTTP response). - Duplex: Both Readable and Writable (e.g., net.Socket).
- Transform: Duplex stream that modifies or transforms data while reading and writing (e.g.,
zlib.createGzip()).
javascript
const { Transform } = require('stream');
// Transform stream that converts chunks to uppercase:
const upperCaseStream = new Transform({
transform(chunk, encoding, callback) {
callback(null, chunk.toString().toUpperCase());
}
});