Saving an image file with Node.js request library causes exception

This is from the request's Github repo - https://github.com/mikeal/request

You can stream any response to a file stream.

request('http://google.com/doodle.png').pipe(fs.createWriteStream('doodle.png'))

I have modified it like so, where largeImage is a absolute url path from 3rd-party website.

request(largeImage).pipe(fs.createWriteStream('./img/large/demo.jpg'));

But I get the following error (not sure why?). I have looked at the createWriteStream API and it seems to be correct. If I only include "demo.jpg" it works fine. But if I include path next to "demo.jpg" it throws an exception.

stream.js:81
      throw er; // Unhandled stream error in pipe.
            ^
Error: ENOENT, open './img/large/demo.jpg'
10 Oct 16:51:02 - [nodemon] app crashed - waiting for file changes before starting...

UPDATE: The problem was I didn't include ./public/ folder before the /img/.

This updated code works correctly:

 request(largeImage).pipe(fs.createWriteStream('./public/img/large/demo.jpg'));

It all looks OK. My guess is that the issue is related to permissions or maybe needing to create the ./img/large directory first.

Do something like this to get more info:

var ws = fs.createWriteStream('./img/large/demo.jpg');
ws.on('error', function(err) { console.log(err); });
request(largeImage).pipe(ws);