Mega Man
Mega Man

Reputation: 297

Express.js fetch API with FormData object

I have the following bit of code on a view

var fd = new FormData();
  fd.append("hello", "world");
  fetch('/vision', {
    method: 'post',
    "content-type": "application/json; charset=utf-8",
    body: JSON.stringify({
      hello: "world"
    })
  })
  .then(data => {
    debugger;
  })

and the action to handle

visionRouter.post("/", (req, res) => {
  vision.detectText(imageUrl, (err, text) => {
    res.send(text);
  })
});

The route is getting hit, but req.body doesn't exist. How can you use fetch and FormData with express?

Upvotes: 1

Views: 553

Answers (1)

BigSpicyPotato
BigSpicyPotato

Reputation: 739

You need to use the body-parser node module. Install it like this

npm install body-parser

Then in your code do this

var bodyParser = require("body-parser");
visionRouter.use(bodyParser.json());

Now your req.body will be able to access the JSON data you are sending

Upvotes: 1

Related Questions