MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Messages d'erreur personnalisés avec Mongoose

Le paramètre unique n'est-il pas pris en charge pour les messages personnalisés ?

L'unicité dans Mongoose n'est pas un paramètre de validation (comme required ); il dit à Mongoose de créer un index unique dans MongoDB pour ce champ.

La contrainte d'unicité est entièrement gérée dans le serveur MongoDB. Lorsque vous ajoutez un document avec une clé en double, le serveur MongoDB renverra l'erreur que vous affichez (E11000... ).

Vous devez gérer ces erreurs vous-même si vous souhaitez créer des messages d'erreur personnalisés. La documentation de Mongoose ("Intergiciel de gestion des erreurs" ) vous fournit un exemple sur la façon de créer un traitement d'erreur personnalisé :

emailVerificationTokenSchema.post('save', function(error, doc, next) {
  if (error.name === 'MongoError' && error.code === 11000) {
    next(new Error('email must be unique'));
  } else {
    next(error);
  }
});

(bien que cela ne vous fournisse pas le champ spécifique pour lequel la contrainte d'unicité a échoué)