Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

168
Views
req.body is undefined - only default mongodb id is getting pushed

I have been trying to use post request to insert data to the mongodb using mongoose, however I see that req.body is being shown as undefined. document is getting inserted in database, however only default object id is getting inserted.

This is how I send request to Postman

{ name:"wewe", price:43}

//Post.js

const mongoose = require('mongoose');
mongoose.connect("mongodb://localhost/tutorialkart");

const productSchema = mongoose.Schema({
    name: String,
    price: Number
});
module.exports = mongoose.model('Groduct', productSchema);

//app.js

var express = require('express')
var bodyParser = require('body-parser')
var Post = require('./Post')

var app = express()
app.use(bodyParser.json())



app.post('/api/posts', function (req, res, next) {
    var post = new Post({
        name: req.body.name,
        price: req.body.price
    })
    console.log("Log "+post.name );
    post.save(function (err, post) {
        if (err) { return next(err) }
        res.json(201, post)
    })
})

app.listen(3000, function () {
    console.log('Server listening on', 3000)
})

MongoDB

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

There are two issues with your request in Postman (you removed the screenshot which showed these issues):

  • it's not formatted as proper JSON, but as a Javascript object
  • you're sending it as text/plain, not application/json
about 4 years ago · Juan Pablo Isaza Report

0

This is how I send request to Postman

{ name:"wewe", price:43}

One of two things is happening:

  • Either you aren't setting a Content-Type header in the request so the JSON parsing middleware you set up isn't being triggered or
  • You have, but since your JSON is invalid, it is failing to parse it.

You have to write valid JSON!

You can test your JSON with JSON Lint.

In particular, property names in JSON must be strings and cannot be identifiers. Strings in JSON must be delimited with " characters.

about 4 years ago · Juan Pablo Isaza Report

0

Your screenshot is not visible/trouble opening the screenshot. You need to be more specific with your question.

  1. I think mongoose.connect("mongodb://localhost/tutorialkart"); here you need to specify the PORT localhost:27017

  2. Make sure you defined the names "name" and "price" in your HTML/EJS and setting their value as the data you are trying to insert into database.

  3. Use new before mongoose.model, mongoose.Schema

  4. app.use(bodyParser.json()) should be app.use(bodyParser.urlencoded({ extended: true }));

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!