sql >> Base de Datos >  >> NoSQL >> MongoDB

Mensajes de error personalizados con Mongoose

¿El parámetro único no es compatible con los mensajes personalizados?

La unicidad en Mongoose no es un parámetro de validación (como required ); le dice a Mongoose que cree un índice único en MongoDB para ese campo.

La restricción de unicidad se maneja completamente en el servidor MongoDB. Cuando agrega un documento con una clave duplicada, el servidor MongoDB devolverá el error que está mostrando (E11000... ).

Debe manejar estos errores usted mismo si desea crear mensajes de error personalizados. La documentación de Mongoose ("Error Handling Middleware" ) le brinda un ejemplo sobre cómo crear un manejo de errores personalizado:

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

(aunque esto no le proporciona el campo específico para el cual falló la restricción de unicidad)