即使提供了文件,也可以在mongoose中获取validation错误

即使我已经提供了所有的字段,但是在保存到数据库时出现以下消息的validation错误,

{ [ValidationError: Validation failed] message: 'Validation failed', name: 'ValidationError', errors: { Name: { [ValidatorError: Path `Name` is required.] message: 'Path `Name` is required.', name: 'ValidatorError', path: 'Name', type: 'required', value: undefined } } } 

这是我想要保存的对象的样子

  { Name: 'Nobody Singh', phone: '+919177121364', address: 'flat no 306 koratala apartments\nstreet no 3 ,Himayatnagar, Near Siraj plaza', start: '2014-12-03T13:00:00.000Z', end: '2014-12-03T15:00:00.000Z', details: 'flat no 306 koratala apartments\nstreet no 3 ,Himayatnagar, Near Siraj plaza' } 

这里是架构

  // load the things we need var mongoose = require('mongoose'); // define the schema for our user model var appointmentSchema = mongoose.Schema({ email: { type: String, default: 'maisnamraj@gmail.com' }, name: { type: String, required:true }, phone: { type:Number }, address:{ type: String }, details:{ type: String }, title:{ type: String, default: "Slot Taken"}, start: { type:Date}, end: { type:Date}, requestedDate: { type:Date, default: Date.now } }); // create the model for users and expose it to our app module.exports = mongoose.model('Appointment', appointmentSchema); 

这是路由文件

 app.post('/saveappointment', function(req, res) { var appointment = new Appointment(); var appointMent = { //need to add an email here name: req.body.name, phone: req.body.phone, address: req.body.address, start: req.body.appointment.start, end:req.body.appointment.end, details:req.body.details, address:req.body.address }; console.log(appointMent); appointment.save(appointMent, function(err,resp) { if(err) { console.log(err); res.send({ message :'something went wrong' }); } else { res.send({ message:'the appointment has bees saved' }); } }); }) 

试试下面的代码,让我知道是否会出现相同的错误

 app.post('/saveappointment', function(req, res) { var appointment = new Appointment({ //need to add an email here name: req.body.name, phone: req.body.phone, address: req.body.address, start: req.body.appointment.start, end: req.body.appointment.end, details: req.body.details, address: req.body.address }); appointment.save(function(err, resp) { if (err) { console.log(err); res.send({ message: 'something went wrong' }); } else { res.send({ message: 'the appointment has been saved' }); } }); }); 

您需要安装( npm install body-parser –save ),并在您的快速服务器中使用它(app.js)。 希望这个答案帮助别人:)

 var express = require('express') var bodyParser = require('body-parser') var app = express() app.use(bodyParser.json()) app.use('/api',api) module.exports = app