Writable Streams: Writing a Stream and Backpressure
Learn how to write to a stream and the backpressure mechanism.
We'll cover the following...
A Writable
stream represents a data destination. Imagine, for instance, a file on the filesystem, a database table, a socket, the standard error, or the standard output interface. In Node.js, it’s implemented using the Writable
abstract class, which is available in the stream
module.
Writing to a stream
Pushing some data down a Writable
stream is a straightforward business; all we have to do is use the write()
method, which has the following signature:
writable.write(chunk, [encoding], [callback])
The encoding
argument is optional and can be specified if chunk
is a string (it defaults to utf8
, and it’s ignored if chunk
is a buffer). The callback
function, on the other hand, is called when the chunk is flushed into the underlying resource and is optional as well.
To signal that no more data will be written to the stream, we have to use the end()
method:
writable.end([chunk], [encoding], [callback])
We can provide a final chunk of data through the end()
method; in this case, the callback
function is equivalent to registering a listener to the finish
...