javascript - Mongoose validation error on POST request -


i'm trying post request using express on node.js , mongoose mongodb using postman data gives me error:

error
   at mongooseerror.validationerror (c:\users\matteo\desktop\app1\node_modules\mongoose\lib\error\validation.js:22:16)
   at model.document.invalidate (c:\users\matteo\desktop\app1\node_modules\mongoose\lib\document.js:1162:32)
   at c:\users\matteo\desktop\app1\node_modules\mongoose\lib\document.js:1037:16
   at validate (c:\users\matteo\desktop\app1\node_modules\mongoose\lib\schematype.js:651:7)
   at c:\users\matteo\desktop\app1\node_modules\mongoose\lib\schematype.js:679:9
   at array.foreach (native)
   at schemastring.schematype.dovalidate (c:\users\matteo\desktop\app1\node_modules\mongoose\lib\schematype.js:656:19)
   at c:\users\matteo\desktop\app1\node_modules\mongoose\lib\document.js:1035:9
   at process._tickcallback (node.js:355:11)

i paste here server.js file

var express = require('express') var bodyparser = require('body-parser') var mongoose = require('mongoose'); var app = express() app.use(bodyparser.json())  mongoose.connect('mongodb://localhost/social', function(){     console.log('mongodb connected') })  var postschema = new mongoose.schema ({     username : { type: string, required: true },     body : { type: string, required: true },     date : { type: date, required: true, default: date.now} }) var post = mongoose.model('post', postschema)  app.get('/api/posts', function(req, res, next){     post.find(function(err, posts){         if(err) { return next(err) }         res.json(posts)     }) })  app.post('/api/posts', function(req, res, next){     var post = new post({         username : req.body.username,         body : req.body.body     })     post.save(function(err, post){         if(err){ return next(err) }         res.json(201, post)     }) })  app.listen(3000, function(){     console.log('server listening on', 3000) }) 

can me or problem of mongoose?

i think it's mongoose validation issue, req.body json formatted-data, console.log(req.body.username) returns username value. general, try use req.body, please make use fill-out required fields upon submission.

app.post('/api/posts', function(req, res, next){ var post = new post(req.body); post.save(function(err, post){     if(err){ return next(err) }     res.json(post) }) }) 

better handle mongooseerror.validationerror when user fails fill-in required fields. try review mongoose model.


Comments