Writable Streams

In notebook:
FrontEndMasters Networking and Streams
Created at:
2017-09-24
Updated:
2017-09-24
Tags:
backend Node JS JavaScript Fundamentals

writable stream methods

We've seen .pipe() which is a method of all readable streams (readable, transform, and duplex).

Any stream you can write to (writable, transform, and duplex streams) has these methods:

  • .write(buf)
  • .end()
  • .end(buf) ☛ you can add end a buffer (writing then ending immediately)
  • .on('finish', function () {}) ☛ writable streams have a finish event when done
  • (...).pipe(stream)

Let's create a writable stream:

  var fs = require('fs')
var w = fs.createWriteStream('cool.txt')
w.write('hi\n')
w.write('wow\n')
w.end()

This is the minimal version.

  var fs = require('fs')
var w = fs.createWriteStream('cool.txt')
// **** 1. listen to the finish event  ↴
w.once('finish', function () {
  console.log('FINISHED')
})
w.write('hi\n')
w.write('wow\n')
w.end()

You only get one finish event, so you can use once method of the NodeJS events API.

Sometimes you want to listen to the finish event to make sure your file has finished writing to disk.