即使提供了文件,也会在mongoose中获得验证错误

时间:2021-10-20 02:32:55

I am getting a validation error with the following message on saving to database even though I have provided all the fields,

即使我提供了所有字段,我在保存到数据库时收到以下消息的验证错误,

{ [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 } } }

This is how the object that I am trying to save looks like

这就是我试图保存的对象的样子

    { 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' }

an here are the schema

这是架构

    // 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);

Here is the route file

这是路径文件

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'
            });
        }           

    });
})

2 个解决方案

#1


9  

Try this code below and let me know if the same error will appear

请尝试下面的代码,如果出现相同的错误,请告诉我

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'
      });
    }

  });
});

#2


1  

You need to install ( npm install body-parser --save), and use it in your express server as below (app.js). hope this answer help someone :)

您需要安装(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

#1


9  

Try this code below and let me know if the same error will appear

请尝试下面的代码,如果出现相同的错误,请告诉我

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'
      });
    }

  });
});

#2


1  

You need to install ( npm install body-parser --save), and use it in your express server as below (app.js). hope this answer help someone :)

您需要安装(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