Downloading files from a server programmatically using Node.js can be accomplished by following a simple process. In this blog post, we will explore how to connect to a server, download an image file, and store it locally.
To achieve this, we will be using the fs
built-in module and the request
module. Please make sure you have the request
module installed by running the following command:
npm install request
Once you have the request
module installed, you can use the following code to download an image:
const fs = require('fs');
const request = require('request');
const download = (url, path, callback) => {
request.head(url, (err, res, body) => {
request(url)
.pipe(fs.createWriteStream(path))
.on('close', callback);
});
};
const url = 'https://…';
const path = './images/image.png';
download(url, path, () => {
console.log('✅ Done!');
});
In the code above, the download
function accepts three parameters: the URL of the image you want to download, the local path where you want to save the image, and a callback function to be executed once the download is complete.
First, we send a HTTP HEAD
request to the specified URL to check its availability. Once the response is received, we initiate the download by sending a regular HTTP request and piping the response to a write stream created using the fs
module. The image will be saved at the specified local path. When the download is finished, the provided callback function will be invoked, and a success message will be logged to the console.
Keep in mind that the request
module has been deprecated, which means it will no longer receive new features but only bug fixes. However, it is still perfectly functional and widely used.
Tags: Node.js, file download, server connection, fs
module, request
module