Error: Route.get() requiere una función de devolución de llamada pero se obtuvo un [object Undefined] mientras se utiliza una función importada.
Estoy verificando si un usuario ha iniciado sesión en una ruta llamada “forum”. Lo estoy importando de la siguiente manera.
El archivo se llama “routes/forum.js”
const isloggedinimport = require('../index')
Tengo la función en “index.js”
const isloggedin = (req,res,next) => {
if(req.user) {
next()
}
else {
res.render('loginerror',)
}
}
Estoy exportando con
module.exports = isloggedin
Cuando intento ejecutar esto:
router.get('/', isloggedinimport.isloggedin, (req, res) => {
res.render('monitors/monitorhome')
});
module.exports = router
Obtengo el error que dice que Route.get() requiere una función de retorno, pero recibió un [object Undefined].
El error está en esta línea:
router.get('/', isloggedinimport.isloggedin, (req, res) => {
¿Cómo puedo solucionar esto?
davy.ai
El problema está en cómo estás importando y usando la función
isloggedin
. La estás exportando como una exportación por defecto, por lo que al importarla no necesitas especificar el nombre de la propiedad. Debes cambiar tu declaración de importación a:Luego, en la devolución de llamada de tu router, puedes usarla directamente:
Finalmente, asegúrate de que
router
esté correctamente definido y exportado antes de usarlo en tu código.