MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Messaggi di errore personalizzati con Mongoose

Il parametro univoco non è supportato per i messaggi personalizzati?

L'unicità in Mongoose non è un parametro di convalida (come required ); dice a Mongoose di creare un indice univoco in MongoDB per quel campo.

Il vincolo di unicità viene gestito interamente nel server MongoDB. Quando aggiungi un documento con una chiave duplicata, il server MongoDB restituirà l'errore che stai mostrando (E11000... ).

Devi gestire questi errori da solo se desideri creare messaggi di errore personalizzati. La documentazione di Mongoose ("Middleware nella gestione degli errori" ) fornisce un esempio su come creare una gestione degli errori personalizzata:

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

(sebbene questo non ti fornisca il campo specifico per il quale il vincolo di unicità non è riuscito)