Mongoose unique validation error type
mongodb, mongoose, node.js
Solution
I prefer putting it in path validation mechanisms, like
UserSchema.path('email').validate(function(value, done) {
this.model('User').count({ email: value }, function(err, count) {
if (err) {
return done(err);
}
// If `count` is greater than zero, "invalidate"
done(!count);
});
}, 'Email already exists');
Then it'll just get wrapped into `ValidationError` and will return as first argument when you call `validate` or `save` .
Problem
I'm using this schema with `mongoose 3.0.3` from npm: ``` var schema = new Schema({ _id: Schema.ObjectId, email: {type: String, required: true, unique: true} }); ``` If I try to save a email that is already in db, I expect to get a `ValidationError` like if a `required` field is omitted. However this is not the case, I get a `MongoError: E11000 duplicate key error index`. Which is not a validation error (happens even if I remove the unique:true). Any idea why?