在Express中的会话中传递variables信息

我是Express会议的新手,希望能够通过express-session传递variables来获得一些帮助。

基本上我使用护照来允许GitHublogin,我可以使用req.user来获取用户的信息。 当用户通过GitHublogin时,我想将用户redirect到一个login页面,该页面会要求用户在创build帐户之前validation信息,或者如果帐户已经存在,将显示一个欢迎页面。

 let app = express(); app.use(session({secret: "blahblahblah"})); console.log('github authenticated'); let sess = req.session; //I want to pass the req.user(returned from GitHub) to a variable sess.user sess.user = req.user; console.log(sess.user); //shows correct info res.redirect('/user/login'); module.exports = app; 

但是,当我尝试从我的路由访问req.session时,它返回'undefined':

 let session = require('express-session'); let app = express(); app.use(session({secret: "blahblahblah"})); app.use(router); router.get('/login', function(req, res, next) { let sess = req.session; console.log(sess.user); //undefined //would check the database //if user doesn't already exists pre-populate fields //render appropriate page }); 

您应该在请求对象本身传递数据

 let sess = req.session; sess.user = req.user; req.mysess=sess.user //pass like this router.get('/login', function(req, res, next) { let sess = req.mysess; console.log(sess); });