0

When I click Submit to post the entry on MongoDB, it gives me this error MongoDB is connected to the server as well.

This is my router file

const express = require('express');
const Club  = require('../models/club')
const Router = express.Router();


Router.get('/', (eror,res)=>{
    res.render('index')
})

Router.post('/form', (req,res)=>{
    const name = req.body.name;

   console.log(name);
})

module.exports = Router;

This is my form

<form action="/form" method="post">
 <input type="text" name="name" placeholder="Add an Entry">
 <input type="submit" value="Submit">
</form>

I tried everything, but it wont work

Juljo Shahini
  • 138
  • 10
  • Your server is configured to receive form data, check out the answer on this post, it should help https://stackoverflow.com/a/26347677/6752055 You need to use bodyParser in express, to be able to get it to work – Fowotade Babajide Jan 10 '23 at 12:28

3 Answers3

0

We have to add middleware to parse request body. In your case:

Router.use(express.urlencoded({ extended: true }))
hungtran273
  • 1,180
  • 9
  • 11
0

Depending on your Express version, you might need to use use the bodyParser middleware before your handlers

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

const app = express();
app.use(bodyParser.urlencoded());
...
TBA
  • 601
  • 5
  • 6
0

In your app.js file you need to add a middleware to parse the data, you don't need to install bodyParser at the current express version they already integrated this feature, you just need to add this:

const express = require('express');
const app = express();
...
app.use(express.urlencoded({ extended: true }));  // this line for your case
ShueiYang
  • 648
  • 1
  • 3
  • 7