0
私は現在、エクスプレスセッションとエクスプレスセッションを使用して情報を保存しています。私は、ファイル「routes/login.js
」で、このようなセッション変数を保存する場合、私はちょうど個別のルートファイルからセッション変数にアクセスする方法
console.log(req.session.user)
を行い、現在ならば、それは未定義のログに記録されますので、私はその後、「routes/index.js
」からその同じ変数にアクセスするにはどうすればよい
req.session.user = "User1"
が、私は内側から同じことを行う場合は、「routes/login.js
」それは「ユーザー1」を記録します
EDIT:
インサイド」01 routes/index.js
'ファイルログに記録されます「
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;
インサイド 『ユーザー1』を記録しますファイル」は未定義
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;
'express-session'ミドルウェアと関連するルート、つまり' app.use'や 'app.get'やあなたが使っているものの呼び出しを作成/登録するために使用するコードを含めることができますか? – skirtle
あなたのログインルータ内の 'express-session'ミドルウェアだけを使用しているようですので、そのルータを経由しないリクエストにはセッションがありません。通常は、ミドルウェアを上位に登録して、セッションを必要とするすべての要求を連鎖させます。 – skirtle
これを「上位に」移動する代わりに、関連するコードを別のファイルに入れて、それを必要とするすべてのルートに関連コードを「要求」することができます。 – skirtle