Tyler B. Joudrey
Tyler B. Joudrey

Reputation: 491

Validation error when creating a new entry with mongo

I am attempting to use Postman to insert an entry to my mongo database, however I am being presented with the following:

{"content":{"message":"Validation failed","name":"ValidationError","errors":{"name":{"message":"Path `name` is required.","name":"ValidatorError","path":"name","type":"required"}}}}

And here is the relevant controller from my API:

var mongoose = require('mongoose');
var Course = mongoose.model('Course');

var sendJSONResponse = function(res, status, content){
   res.status(status);
   res.json({content});
}

module.exports.makeCourse = function(req, res){
   Course.create({
      name: req.body.courseName
      },function(err, course){
         if(err){
            sendJSONResponse(res, 400, err);
         } else{
            sendJSONResponse(res, 201, course);
         }
      })
};
module.exports.listCourses = function(req, res){
   Course.find({}, function(err, course){
      sendJSONResponse(res, 200, course);
   })
};

module.exports.courseIDLookup = function(req, res){};

module.exports.deleteCourse = function(req, res){};

And the data model as well:

var mongoose = require('mongoose')
var subject = require('./subject.js');

var courseSchema = new mongoose.Schema({
   name : {type: String,
            unique: true,
            required: true},
   subjects : [subject.schema]
});

module.exports = mongoose.model('Course', courseSchema);

What error am I making when creating this entry?

Upvotes: 0

Views: 170

Answers (1)

berko
berko

Reputation: 383

If name is your key,

name: req.body.courseName

should be

name: req.body.name

Upvotes: 1

Related Questions