The 'unpipe' event in a Writable Stream is emitted when the stream.unpipe() method is being called on a Readable stream by detaching this Writable from its set of destinations.
Syntax:
Event: 'unpipe'
Return Value: If the unpipe() method is being called then this event is emitted else it's not emitted.
The below examples illustrate the use of the 'unpipe' event in Node.js:
Example 1:
// Node.js program to demonstrate the
// unpipe event
// Accessing fs module
const fs = require("fs");
// Create a readable stream
const readable = fs.createReadStream('input.txt');
// Create a writable stream
const writable = fs.createWriteStream('output.txt');
// Handling unpipe event
writable.on("unpipe", readable => {
console.log("Unpiped!");
});
// Calling pipe method
readable.pipe(writable);
// Calling unpipe method
readable.unpipe(writable);
console.log("Program Ended...");
Output:
Unpiped! Program Ended...
Example 2:
// Node.js program to demonstrate the
// unpipe event
// Accessing fs module
const fs = require("fs");
// Create a readable stream
const readable = fs.createReadStream('input.txt');
// Create a writable stream
const writable = fs.createWriteStream('output.txt');
// Handling unpipe event
writable.on("unpipe", readable => {
console.log("Unpiped!");
});
console.log("Program Ended...")
Output:
Program Ended...
So, here unpipe() function is not called so the unpipe event is not emitted.
Reference: https://nodejs.org/api/stream.html#stream_event_unpipe