NodeJS writeStream empty file

I am trying to use nodeJS to save a processed image stored in a base64 string.

var buff = new Buffer(base64data,'base64');
console.log(base64data);

var stream = fs.createWriteStream('/path/to/thefile.png');
stream.write(buff)
stream.end()

However, the resulting file is empty.

When I take the output of console.log(base64data); and decode it locally, it produces a valid png binary, so why is the file empty?

The file is a 3600x4800 px png file (i.e. it's huge), could this be a factor?

Also, I tried writeFile as well, no luck.

And yes, fs is require('fs')

Thanks

your stream.end() too soon as nothing is written. it is async function remember.

var buff = new Buffer(base64data,'base64');
console.log(base64data);

var stream = fs.createWriteStream('/path/to/thefile.png');
stream.write(buff);
stream.on("end", function() {
  stream.end();
});