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.
const fs = require( 'fs' );
const https = require( 'https' );
// URL of the image const url = 'GFG.jpeg' ;
https.get(url,(res) => { // Image will be stored at this path
const path = `${__dirname}/files/img.jpeg`;
const filePath = fs.createWriteStream(path);
res.pipe(filePath);
filePath.on( 'finish' ,() => {
filePath.close();
console.log( 'Download Completed' );
})
}) |
-
‘node-downloader-helper’ Library
Installation:
npm install node-helper-library
- The image which is to be downloaded.
- The path where the image has to be saved after downloading.
Below is the code for downloading an image from a website. An object dl is created of class DownloadHelper which receives two arguments:
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.
Javascriptconst { DownloaderHelper } = require(
'node-downloader-helper'
);
// URL of the image
const file =
'GFG.jpeg'
;
// Path at which image will be downloaded
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
Javascriptconst download = require(
'download'
);
// Url of the image
const file =
'GFG.jpeg'
;
// Path at which image will get downloaded
const filePath = `${__dirname}/files`;
download(file,filePath)
.then(() => {
console.log(
'Download Completed'
);
})
Method 2: Using third party libraries