'Unable to receive files in request using express-fileupload

I use a REST client to test my app (Insomnia and postman). My app literally does nothing:

const express = require('express');
const app = express();
const fileUpload = require('express-fileupload');
app.use(express.json())
app.use(fileUpload());
app.post('/', fileUpload(), function(req, res) {
    console.log(req.files)
    res.send('a')
});
const PORT =  9999;
app.listen(PORT, () => {
  console.log(`Server listening on port ${PORT}...`);
});

Whenever I try to upload a file to this service req.files is undefined. I took this code from express docs page and from a few stackoverflow questions and it just doesn't work for me. Content-length is good (40k seems right)enter image description here

Content-type is auto set by my REST client. Do I have to change this? I tried simply printing whole request object and body is empty and files is not even present there



Solution 1:[1]

So for anyone wondering. fileupload requires form-data Content-type. Moreover, it also requires a file to have a "key" within this form-data. It's a shame documentation fails to mention this.

Solution 2:[2]

Just do one thing: remove file fileUpload() from post endpoint and check, find below code for your reference.

app.post('/', function(req, res) {
    console.log(req.files)
    res.send('a')
});

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 J. Doe
Solution 2 E_net4 - Krabbe mit Hüten