How to download and save an image using Node.js
New Course Coming Soon:
Get Really Good at Git
I had the need of downloading a file from the Internet, and I also wanted to use await
to do something else after in an easy way.
You can do that using Axios.
import axios from 'axios'
Then write a download()
function like this:
async function download(url, filepath) {
const response = await axios({
url,
method: 'GET',
responseType: 'stream',
})
return new Promise((resolve, reject) => {
response.data
.pipe(fs.createWriteStream(filepath))
.on('error', reject)
.once('close', () => resolve(filepath))
})
}
Then call it using
const remote_url = 'https://...'
const local_path = './images/test.png'
await download(remote_url, local_path)
→ Get my Node.js Handbook
→ Read my
Node.js Tutorial
on The Valley of Code
Here is how can I help you:
- COURSES where I teach everything I know
- CODING BOOTCAMP cohort course - next edition in 2025
- BOOKS 16 coding ebooks you can download for free on JS Python C PHP and lots more
- Follow me on X