How to download a file with Node.js (without using third-party libraries)?

greepow picture greepow · Aug 14, 2012 · Viewed 520.9k times · Source

How do I download a file with Node.js without using third-party libraries?

I don't need anything special. I only want to download a file from a given URL, and then save it to a given directory.

Answer

Michelle Tilley picture Michelle Tilley · Aug 14, 2012

You can create an HTTP GET request and pipe its response into a writable file stream:

const http = require('http');
const fs = require('fs');

const file = fs.createWriteStream("file.jpg");
const request = http.get("http://i3.ytimg.com/vi/J---aiyznGQ/mqdefault.jpg", function(response) {
  response.pipe(file);
});

If you want to support gathering information on the command line--like specifying a target file or directory, or URL--check out something like Commander.