خرید بک لینک

Vote count: 0

I have a simple model, which is:

var mongoose     = require('mongoose');
var Schema       = mongoose.Schema;

var citySchema   = new Schema({
    name: { type: String, required: true },
    state: { type: Schema.Types.ObjectId, ref: 'State' }
});

module.exports = mongoose.model('City', citySchema);

Only i access a route, asking to insert a city, giving as post params

POST: { name: 'My City', state: 'SE' // Stands for Some State }

I know the type of the state property is not correct, but in my logic i do:

var newCity = new City(req.body);

if (typeof req.body.state !== 'undefined' && req.body.state.length == 2) {
    State.findOne({uf: req.body.state.toUpperCase()}, function(err, foundState) {
        if (err) { res.send({status: 500, message: 'Could not find the required state'}); retu; }
        newCity.state = foundState._id;
        newCity.set('state', foundState._id);
        retu;
    });
}

But, once i do a res.send(newCity), to check out the newCity variable properties, it prints:

{
  "name": "Balneário Camború",
  "_id": "570ff2944c6bd6df4e8e76e8"
}

And if i try to save it, i get the following error:

ValidationError: CastError: Cast to ObjectID failed for value "SE" at path "state""

So, i'm quite confused, because when the Model is created using the req.body properties, it does not list the state property, even if i set it later in the code, but when i try to save the City, it throw an error of mistype.

What could be causing this, and how should i procede?

asked 2 mins ago

برچسب: نویسنده: استخدام کار تاريخ: جمعه 27 فروردين 1395 ساعت: 2:59

صفحه بندی