Categories
Express JavaScript Answers

How to Fix the ‘req.files undefined’ Error with Express?

Spread the love

Sometimes, we may encounter the ‘req.files undefined’ error in our Express app when we try to add file upload feature into our Express app.

In this article, we’ll look at how to fix the ‘req.files undefined’ error in our Express app when we try to add file upload feature into our Express app.

Fix the ‘req.files undefined’ Error with Express

To fix the ‘req.files undefined’ error in our Express app when we try to add file upload feature into our Express app, we should add a file upload handling library into our Express app.

For instance, we can use the express-fileupload library by installing it with:

npm i express-fileupload

Then we can use the library by writing:

const express = require('express')
const app = express()
const port = 3000
const fileupload = require("express-fileupload");
app.use(fileupload());

app.post("/", (req, res) => {
  if (!req.files) {
    res.send("File was not found");
    return;
  }

  const file = req.files.file;
  res.send(`${file.name} File Uploaded`);
});

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

we add the fileUpload middleware with:

const fileupload = require("express-fileupload");
app.use(fileupload());

Now the uploaded file can be accessible from the req.files object.

file is the key of the form data that has the file as its value.

And we can get the name of the file with the file.name property.

Conclusion

To fix the ‘req.files undefined’ error in our Express app when we try to add file upload feature into our Express app, we should add a file upload handling library into our Express app.

One reply on “How to Fix the ‘req.files undefined’ Error with Express?”

It works for me but the only problem am having is that i need to call the (file.path) or (file.tempFilePath) . The result i get from that request is ‘undefined’ or ‘null’ from calling req.files.file.tempFilePath / req.files.file.path

Leave a Reply

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