Send files using Express
New Courses Coming Soon
Join the waiting lists
Express provides a handy method to transfer a file as attachment: `Response.download()`
Express provides a handy method to transfer a file as attachment: Response.download()
.
Once a user hits a route that sends a file using this method, browsers will prompt the user for download.
The Response.download()
method allows you to send a file attached to the request, and the browser instead of showing it in the page, it will save it to disk.
app.get('/', (req, res) => res.download('./file.pdf'))
In the context of an app:
const express = require('express')
const app = express()
app.get('/', (req, res) => res.download('./file.pdf'))
app.listen(3000, () => console.log('Server ready'))
You can set the file to be sent with a custom filename:
res.download('./file.pdf', 'user-facing-filename.pdf')
This method provides a callback function which you can use to execute code once the file has been sent:
res.download('./file.pdf', 'user-facing-filename.pdf', (err) => {
if (err) {
//handle error
return
} else {
//do something
}
})
→ Get my Express.js Handbook
→ Read my
Express.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