Downloading a file using node js can be done using inbuilt packages or with third party libraries.
Method 1: Using ‘https’ and ‘fs’ module
GET method is used on HTTPS to fetch the file which is to be downloaded. createWriteStream() is a method that is used to create a writable stream and receives only one argument, the location where the file is to be saved. pipe() is a method that reads the data from the readable stream and writes it onto the writable stream.
Javascript
const fs = require( 'fs' );
const https = require( 'https' );
const url = 'GFG.jpeg' ;
https.get(url,(res) => {
const path = `${__dirname}/files/img.jpeg`;
const filePath = fs.createWriteStream(path);
res.pipe(filePath);
filePath.on( 'finish' ,() => {
filePath.close();
console.log( 'Download Completed' );
})
})
|
Method 2: Using third party libraries
- ‘node-downloader-helper’ Library
Installation:
npm install node-helper-library
Below is the code for downloading an image from a website. An object dl is created of class DownloadHelper which receives two arguments:
- The image which is to be downloaded.
- The path where the image has to be saved after downloading.
The file variable contains the URL of the image which will be downloaded and filePath variables contain the path where the file will be saved.
Javascript
const { DownloaderHelper } = require( 'node-downloader-helper' );
const file = 'GFG.jpeg' ;
const filePath = `${__dirname}/files`;
const dl = new DownloaderHelper(file , filePath);
dl.on( 'end' , () => console.log( 'Download Completed' ))
dl.start();
|
- ‘download’ Library
Installation:
npm install download
Below is the code for downloading an image from a website. The download function receives the file and path of file
Javascript
const download = require( 'download' );
const file = 'GFG.jpeg' ;
const filePath = `${__dirname}/files`;
download(file,filePath)
.then(() => {
console.log( 'Download Completed' );
})
|

console output of all the above three codes