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

265
Views
Error TypeError: no se pueden leer las propiedades de undefined (leyendo 'funcao')

Hola a todos, estoy creando un sitio con javascript y necesito autenticación para verificar si es un administrador o un cliente para redirigirlo de diferentes maneras, pero tengo un problema cuando intento verificar las propiedades No se pueden leer de indefinido .

Mi verificación de autorización

 module.exports = async function(req, res, next){ if(req.isAuthenticated()){ const utilizador = req.Utilizador; if(utilizador.funcao==='admin'){ next(); }else{ res.redirect('back'); } }else{ res.redirect('/utilizadores/login'); }

};

El modelo

 const mongoose = require('mongoose'); const utilizadorSchema = mongoose.Schema({ nome:{ type: String, required: true }, email:{ type: String, required: true }, password:{ type: String, required: true }, funcao:{ type: String, required: true, default: 'customer' }, fidelizacao:{ type:Number, default:0 }, carrinho:[{ livro:{ type: mongoose.Schema.Types.ObjectId, ref: "Livro", }, quantidade:{ type: Number, required: true, default: 1 } }] }); module.exports = mongoose.model("Utilizador", utilizadorSchema);

El error

TypeError: no se pueden leer las propiedades de undefined (leyendo 'funcao')

 at module.exports (C:\Users\cardo\Desktop\book--store--nodejs-master\middleware\checkAuthorization.js:4:24)

¿Alguien puede arreglarme? Estoy viendo el código durante horas y no puedo entender...

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El error significa que req.Utilizador utilizador no está undefined y por lo tanto funcao no es una propiedad válida del mismo.

Para corregir este error específico, sugiero usar el encadenamiento opcional ;

 if (utilizador?.funcao === 'admin') { next(); } else { res.redirect('back'); }

A continuación, probablemente debería verificar por qué no se define req.Utilizador , suponiendo que debería estar en la lógica de su aplicación.

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!