如何从单独的路由文件访问会话变量

时间:2017-10-07 21:02:09

标签: node.js express express-session

我目前正在使用快递和快递来保存信息。如果我在文件' req.session.user = "User1" '

中保存这样的会话变量
routes/index.js

如何从' console.log(req.session.user) '中访问同一个变量?因为目前我只是做

routes/login.js

它会记录未定义但如果我从内部做同样的事情' routes/login.js'它将记录" User1"

编辑:

内部' var express = require('express'); var redis = require('redis'); var session = require('express-session'); var RedisStore = require('connect-redis')(session); var router = express.Router(); var client = redis.createClient(); var store = new RedisStore({host: 'localhost', port: 6379, client: client, ttl: 260}); router.use(session({ resave: true, saveUninitialized: true, secret: "secret", store: store })); router.get('/user', function(req, res) { req.session.test = "User1"; res.send(req.session.test); //Logs "User1" }); module.exports = router; '文件将记录" User1"

routes/index.js

内部' var express = require('express'); var router = express.Router(); var config = require('../config/config') /* GET home page. */ router.get('/', function(req, res, next) { console.log(req.session); //Logs undefined }); module.exports = router; '文件将记录未定义

</div>

2 个答案:

答案 0 :(得分:1)

我能够通过在我的应用程序中使用快速会话中间件然后从路径访问它来解决我的问题。

内部app.js

app.use(session({
     resave: true,
     saveUninitialized: true,
     secret: "secret",
     store: store
 }));

现在我可以将一个变量保存到request.session,它将在两个路径文件中保留。

答案 1 :(得分:0)

  

在像 express-session 这样的入口点使用 app.js   您的应用实际上已初始化

在访问 app.js 中的路由之前,请输入以下代码

app.use(session({
         resave: true,
         saveUninitialized: true,
         secret: "secret",
         store: store
        }));

记住要保持订单。