Я давно сталкиваюсь с этой проблемой и, наконец, решил опубликовать ее здесь.Я сохраняю переменную сеанса в одном маршруте, и когда я пытаюсь получить доступ к ней из другого маршрута, она не определяется.
файл server.js
var express=require('express');
app=express();
var port=process.env.PORT || 8080;
var mongoose=require('mongoose');
var router=express.Router();
var appRoutes=require('./routes/api')(router);
var session=require('express-session');
var MongoStore=require('connect-mongo')(session);
app.use(bodyParser.urlencoded({extended:true}));
app.use(session({
secret:'hardik',
saveUninitialized: true,
resave: true,
store: new MongoStore({mongooseConnection:mongoose.connection})
}));
app.listen(port,function(){
console.log('running on port '+port);
});
api.js
router.post('/authenticate',function(req,res){
var token=jwt.sign({
email:req.body.email
},secret);
var profile=req.body.profile;
req.session.token=token;
console.log(req.session);
console.log(req.session.token);
}
и после этого он покажет токен, если я войду чуть ниже этой линии, но на любых других маршрутах, если я попытаюсь войти в систему, он выдаст неопределенное значение.любая помощь приглашена.