Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

229
Vistas
Why is there no message in mongoose error object?

I am making a user signup API, where name and email are set to be unique. When I send a JSON object which has a the same email address as an existing user, it gives an error as expected. But there is no message in that error, which i can then use to give a more usable message.

Below is the error object that i'm getting.

{ "index": 0,    
 "code": 11000,
 "keyPattern": {
    "email": 1
},
 "keyValue": {
    "email": "pranatkarode@rocketmail.com"
 }
}

And this is my controller module,

const User=require("../models/userModels.js");
exports.signUp=(req,res)=>{
const user=new User(req.body);
user.save((err,user)=>{
    if(err){
        res.send(err)
    }
    else{
        res.json({
            user
        })
    }
})
}
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Mongoose's default error object is designed for non limited use cases. So you need to look at it and depending on what it contains add custom messages. For this specific use case of yours, you can for example do it like so:

const User = require("../models/userModels.js");
exports.signUp = async (req, res) => {
  try {
    const user = new User(req.body);
    await user.save();
    res.json({
      user,
    });
  } catch (err) {
    if (err.code === 11000 && err?.keyPattern.hasOwnProperty("email")) {
      err.message = "This email is alrady used.";
    } else if (err.code === 11000 && err?.keyPattern.hasOwnProperty("name")) {
      err.message = "This name is alrady taken.";
    }
    res.send(err);
  }
};

I'm using async/await syntax here to have a better looking code, yours would work as well.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda