Categories
Express JavaScript Answers

How to Accept File Uploads with Express?

Spread the love

To accept file uploads in our Express apps, we can use the multer Express middleware.

For instance, we can write:

const express = require('express')
const app = express()
const port = 3000
const multer = require('multer');
const upload = multer({ dest: 'uploads/' })

app.get('/', (req, res) => {
  res.send('hello world')
});

app.post('/', upload.single('file'), (req, res) => {
  console.dir(req.file);
  res.send('uploaded')
});

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

to add the multer Express middleware.

To install it, we run:

npm i multer

Then to make the POST / route accept a file upload.

We call upload.single with the key of the form to get the file.

Then we can get the uploaded file with the req.file property.

The file will be stored in the /uploads folder as set as the value of the dest property.

Then if we make a request to the POST / route with a form data object that has the file key set to a file, the file will be uploaded.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *