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

274
Vistas
NodeJS express: ¿cómo agregar datos de sesión dentro del enrutador?

Necesito agregar un enrutador expreso de datos de sesión (usando sesión expresa y pasaporte).

Almaceno los datos correctamente en el registro de usuario en DB (mongo) e intento establecer el valor en los datos de la sesión:

 req.user.myData = "my session data";

Desafortunadamente, los datos del usuario se serializan solo durante la autorización del usuario a través del pasaporte. Entonces "myData" no se almacena en la sesión actual. Cuando se inicia una nueva sesión de usuario, los datos se cargan correctamente desde la base de datos y están disponibles.

¿Hay alguna forma (eso espero) de hacer que los datos estén disponibles en la sesión actual?

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

La mayoría de estas cosas en el mundo de ExpressJS se hacen usando middlewares:

1) cree un archivo js en la carpeta de middlewares : populateUserData.js :

 'use strict'; module.exports = (req, res, next) => { if(!req.user) req.user = {}; req.user.someData = 'something'; next(); }

2.1) adjuntarlo después del pasaporte:

 app.use(passport.initialize()); app.use(passport.session()); app.use(require('./middlewares/populateUserData'));

o

2.2) adjuntarlo a una ruta específica:

 const populateUserData = require('./middlewares/populateUserData'); route.get('/api/users/me', passport.authenticate('basic', { session: false }), populateUserData, (req, res) => { res.json({ id: req.user.id, username: req.user.username }); });

o

2.3) en grupo de rutas:

 app.use('/api/users', passport.authenticate('basic', { session: false }), require('./middlewares/populateUserData'), require('./routes/api/users'));

también puede crear sus propios middlewares que serían útiles,

por ejemplo: https://github.com/num8er/alttab-nodejs-challenge/blob/master/app.js#L19

about 4 years ago · Santiago Trujillo 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