i'm created an api and for this i'm using node.js. what is happening is following it whenever i make a post request even after passing the data correctly i am getting a validation error saying that the fields are empty. I did a check I noticed that req.body is undefined even installed and imported the body-parser I´m using body-parser: 1.19.0
//Index.js
const express = require("express");
const app = express();
const mongoose = require("mongoose");
const dotenv = require("dotenv");
const bodyParser = require("body-parser");
//Import Router
const authRoute = require("./routes/auth");
dotenv.config();
//Import Router Middlewares
app.use("/api/user/", authRoute);
//MiddleWare
app.use(express.json());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
mongoose
.connect(process.env.DB_MONGO, {
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true,
useFindAndModify: false,
})
.then(() => {
console.log("DB is connect");
})
.catch((err) => {
console.log(err);
});
app.listen(8081, () =>
console.log("Servier is running http://localhost:8081")
);
This is the auth.js
const router = require("express").Router();
const User = require("../model/User");
//post method
router.post("/register", async (req, res) => {
const user = new User(req.body);
console.log(req.body);
user.save((err, data) => {
if (err) {
console.log(err);
res.status(400).json({
message: err,
});
} else {
res.json({
message: data,
status: true,
});
}
});
});