Skip to content
FLAVIO COPES
flaviocopes.com
2026

How to download and save an image using Node.js

By Flavio Copes

Learn how to download and save an image in Node.js with Axios by requesting it as a stream and piping the response into a file write stream you can await.

~~~

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)
Tagged: Node.js ยท All topics
~~~

Related posts about node: