Le meilleur moyen de vérifier la mangouste erreur de validation

J'en ai deux validation fonctions pour ma usermodel

User.schema.path('email').validate(function(value, respond) {
  User.findOne({email: value}, function(err, user) {
    if(err) throw err;
    if(user) return respond(false);
    respond(true);
  });
}, 'EMAIL_EXISTS');

et de même pour username

User.schema.path('username').validate(function(value, respond) {
  User.findOne({username: value}, function(err, user) {
    if(err) throw err;
    if(user) return respond(false);
    respond(true);
  });
}, 'USERNAME_TAKEN');

De retourner des erreurs dans le format suivant

{ message: 'Validation failed',
  name: 'ValidationError',
  errors: 
    { username: 
      { message: 'Validator "USERNAME_TAKEN" failed for path username',
        name: 'ValidatorError',
        path: 'username',
        type: 'USERNAME_TAKEN' } } }

L'erreur pour les email chemin d'accès est similaire. Est-il une façon plus intelligente pour vérifier ces erreurs que le suivant?

if (err && err.errors && err.errors.username) { ... }

C'est le genre de laid.

InformationsquelleAutor zemirco | 2013-01-18