I am trying to send the form data to backend MongoDB using Axios. The API is working fine if post request is sent from postman, but fails to hit the API if request comes from the frontend. I have attached the screenshot of the error:
Code of frontend:
const res = await axios.post('http://localhost:8000/api/users/adduser', {
name: name,
email: email,
phone: phone,
message: message
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
}
Backend code: (Node.js)
//ADD USER
router.post("/adduser", async(req, res) => {
console.log("add-user api");
try{
console.log(req.body);
let newUser = new User({
id: Date.now().toString(36),
name: req.body.name,
email: req.body.email,
phone: req.body.phone,
message: req.body.message
});
const user = await newUser.save();
res.status(200).json(user);
}catch(err){
res.status(500).json(err);
}
});
index.js:
const express = require("express");
const app = express();
const dotenv = require("dotenv")
const mongoose = require("mongoose")
//Models
require('./models/User')
//Routes
const userRoute = require("./routes/users")
dotenv.config();
//A middleware which will Extract req.body for us
app.use(express.json());
mongoose.set("strictQuery", true);
mongoose.connect(process.env.MONGO_URL, {
useNewUrlParser:true,
useUnifiedTopology: true,
})
.then(console.log("Connected to MongoDB"))
.catch(err => console.log(err));
app.use("/api/users", userRoute);
app.listen(8000, () => {
console.log(`Server is running on port 8000.`);
});