Amit Khare
Amit Khare

Reputation: 231

form-data in node not showing

I have a node express set up. While using Postman, Iam able to see data sent through x-www-form-urlencoded but the same is not being shown through form-data.

below are the codes Server.js

const express = require('express')
var cors = require('cors')
const app = express()
var bodyParser = require('body-parser')
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
var cookieParser = require('cookie-parser')
app.use(cookieParser())

app.use(cors())
const index = require("./routes/index")
app.use("/", index)
const port = process.env.PORT || 3060;
app.listen(port, function listenHandler() { console.log(`Running on ${port}`) });

Index.js

const express = require('express')
const router = express.Router()
var pool = require('./mysqlConnector')
const asyncMiddleware = require('./asyncMiddleware')
const func = require('./functions')
const time = new Date().toISOString().slice(0, 19).replace('T', ' ')
const nodemailer = require("nodemailer");
router.use('/auth', require('./auth')

Auth .js

const express = require('express')
const router = express.Router();
var pool = require('./mysqlConnector')
const asyncMiddleware = require('./asyncMiddleware')
const jwt = require('jsonwebtoken')
const bcrypt = require('bcryptjs')
const nodemailer = require("nodemailer");
const func = require('./functions')

router.post('/register', asyncMiddleware( async(req, res, next) => {
   res.send({ success: true, message: req.body }) 
}))

enter image description here

enter image description here

Upvotes: 1

Views: 1740

Answers (1)

Lin Du
Lin Du

Reputation: 102597

You should use Multer to handle form-data.

Multer is a node.js middleware for handling multipart/form-data

body-parser middleware can't handle multipart/form-data.

This does not handle multipart bodies, due to their complex and typically large nature.

In case you need to handle a text-only multipart form, you should use the .none() method:

E.g.

const express = require('express');
const bodyParser = require('body-parser');
const multer = require('multer');
const upload = multer();

const app = express();

app.use(upload.none());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.post('/auth/register', (req, res) => {
  res.send({ success: true, message: req.body });
});
const port = process.env.PORT || 3060;
app.listen(port, function listenHandler() {
  console.log(`Running on ${port}`);
});

postman:

enter image description here

Upvotes: 2

Related Questions