Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

351
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!