es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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?

Tags:  , , ,

Answer

  1. Avatar for 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:

    const isloggedin = require('../index');
    

    Luego, en la devolución de llamada de tu router, puedes usarla directamente:

    router.get('/', isloggedin, (req, res) => { 
        res.render('monitors/monitorhome');
    });
    

    Finalmente, asegúrate de que router esté correctamente definido y exportado antes de usarlo en tu código.

Comments are closed.