Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

349
Visualizações
¿Cómo hago un error 404 en lugar de un error de conversión?

Tengo una ruta que es /mysafe/idofthemodel. Cuando no se encuentra el idofthemodel , arroja un error de conversión Falló la conversión Cast to ObjectId failed for value "something" (type string) at path "_id" for model "modelname". En lugar del error, me gustaría tener un error 404.

Aquí está mi ruta

 app.get('/mysafe/:safeid',isLoggedIn,isAuthor, async(req,res)=> { const { safeid } = req.params; const safe=await Safe.findById(safeid).populate('author') const password = await Password.find({safe:safeid}).populate('safe') res.render('passwords/index', { password,safe }) })

Esquemas:

 const PasswordsSchema = new Schema({ title: String, url: String, password: String, safe: { type: Schema.Types.ObjectId, ref: "Safe" }, }) const SafeSchema = new Schema({ author: { type: Schema.Types.ObjectId, ref: "User" }, })
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Aquí estoy usando EJS para representar la página de error 404, y el archivo de la página se encuentra en views/errors/404.ejs

 const { safeid } = req.params; try { const safe = await Safe.findOne({ _id: mongoose.Types.ObjectId(safeid) }).populate('author') if (!safe) { return res.status(404).render('errors/404.ejs') } const password = await Password.findOne({ safe: mongoose.Types.ObjectId(safeid) }).populate('safe') return res.render('passwords/index', { password, safe }) } catch (error) { return res.status(500).render('errors/500') }

middleware.js

 module.exports.isAuthor = (req, res, next) => { const { safeid } = req.params if (!mongoose.Types.ObjectId.isValid(safeid)) { return res.status(404).render('errors/404.ejs') } Safe.findById(safeid).then(safe => { if (!safe) { return res.status(404).render('errors/404.ejs') } if (!safe.author._id.equals(req.user._id)) { req.flash('error', 'Notfound'); return res.redirect('/'); } next(); }); }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda