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

261
Vistas
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 Respuestas
Responde la pregunta

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 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