I tried sending some form data to my node server but req.body
has none of my form fields the node side
var express = require('express') var app = express() var path = require('path') var bodyParser = require('body-parser') app.use(bodyParser.urlencoded({ extended: true })); app.get('/', function (req, res) { res.sendFile('index.html') }) app.post('/sendmail', function (req, res) { const formData = req.body.formData
this is what I'm sending from the browser
fetch('/send', { method: 'POST', body: new FormData(form) })
in dev tools I only see the data passed in the Referer, maybe that is my issue
Referer:http://localhost:3000/?name=&budget=%C2%A31000
To get started with forms, we will first install the body-parser(for parsing JSON and url-encoded data) and multer(for parsing multipart/form data) middleware. var express = require('express'); var bodyParser = require('body-parser'); var multer = require('multer'); var upload = multer(); var app = express(); app.
body-parser
doesn't handle multipart bodies, which is what FormData
is submitted as.
Instead, use a module like multer
.
For example, to retrieve the (regular) fields of a request:
const multer = require('multer'); const upload = multer(); app.post('/send', upload.none(), (req, res) => { const formData = req.body; console.log('form data', formData); res.sendStatus(200); });
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With