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.

La aplicación Node.js de repente comenzó a comportarse de manera diferente.

Esta parte del código maneja la enrutación de autorización de inicio de sesión en mi aplicación.

const express = require("express");
const authController = require('../controllers/authController');
const indexController = require('../controllers/indexController');
const router = express.Router();

router.use("/login", (req, res, next) => {
  if(req.session.loggedIn) {
    res.redirect('/account');
  }
  next();
});

router.use("/account", (req, res, next) => {
  if(!req.session.loggedIn) {
    res.redirect('/login');
  }
  next();
});

router.get('/', (req, res) => {
  res.redirect('/login');
});
router.get('/login', (req, res) => {
  res.render('login');
});
router.get('/log-out', authController.logOut);
router.get("/account", indexController.getAccountData);

module.exports = router;

No hubo problemas y funcionaba bien hasta hace unos días.

No he cambiado nada en este archivo ni en authController ni en indexController.
Cuando hago un cambio (en otras partes), nodemon reinicia la aplicación y automáticamente salto a la página de inicio de sesión porque obviamente todas las sesiones se destruyen. Pero obtengo un error en la función getAccountData (El error dice que req.session está indefinido).

Como puedes ver, no hay forma de que la aplicación acceda a esa función sin que se establezcan sesiones.

Tengo que reiniciar la aplicación nuevamente para que actúe correctamente.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    P: ¿Cuál podría ser la razón del mensaje de error “req.session is undefined” en la función “getAccountData”?

    El mensaje de error “req.session is undefined” en la función “getAccountData” podría deberse al hecho de que cuando la aplicación se reinicia por nodemon después de los cambios en el código, todas las sesiones se destruyen, por lo que cuando se llama a la función “getAccountData”, no hay ninguna sesión establecida para el objeto de solicitud (req.session). Esto podría dar lugar al mensaje de error “req.session is undefined”.

Comments are closed.