How to download and save an image using Node.js
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
I wrote 21 books to help you become a better developer:
- HTML Handbook
- Next.js Pages Router Handbook
- Alpine.js Handbook
- HTMX Handbook
- TypeScript Handbook
- React Handbook
- SQL Handbook
- Git Cheat Sheet
- Laravel Handbook
- Express Handbook
- Swift Handbook
- Go Handbook
- PHP Handbook
- Python Handbook
- Linux Commands Handbook
- C Handbook
- JavaScript Handbook
- Svelte Handbook
- CSS Handbook
- Node.js Handbook
- Vue Handbook