Нужно сделать валидацию при изменении данных модели... При сохранении валидация проходит нормально, но при обновлении никак не реагирует..
Что пробовал:
1. дописывал модели
var ApplianceSchema = new mongoose.Schema({
created: Date,
updated: Date,
name: {
type: String,
required: [true, 'Appliance name is required'],
validate: {
validator: validateUniqueName,
message : 'Appliance name already taken'
},
get: escapeProperty
}
});
---- ВОТ ЭТОТ КУСОК
ApplianceSchema.pre('findOneAndUpdate', function(next) {
this.options.runValidators = true;
next();
});
--- КОНЕЦ
mongoose.model('Appliance', ApplianceSchema);
2. Дописывал опцию валидейт тру в контроллере: (код с коментариями .. т.к пробовал уже разные варианты.. в том числе и с разными опциями... работа была везде одинаковая...
/* Appliance.findOne({
_id: req.params.id
}).exec(function (err, appliance) {*/
// if (!err && appliance) {
var newAppliance = Appliance.findOneAndUpdate({
_id: appliance._id
}, {
$set: req.body
}, {
runValidators: true
// multi: false,
//upsert: false
}, function (err, appliance) {
if (err) {
res.status(500).send(e.validationErrors(err));
}
res.jsonp(newAppliance);
});
// }
// });
Буду благодарен если кто то подскажет как правильно или в каком направлении копать! Спасибо