Express フレームワークを使用して node.js サーバーをセットアップし、セッションを実装しようとしています。
これは機能します:
var express = require('express');
var session = require('express-session');
var redis = require('redis');
var server = express();
var redisClient = redis.createClient();
server.use(session({secret: 'mySuperSecretKey'}));
server.listen(8000, function () {
console.log('listening...');
});
server.get('/', function (req, res) {
req.session.aSessionEntry = 'value';
res.send('Your session entry is' + req.session.aSessionEntry);
});
ただし、非同期関数内で server.use(session(...)) を宣言すると、無視されます。セッション処理は機能しなくなります。
ここ :
var express = require('express');
var session = require('express-session');
var redis = require('redis');
var server = express();
var redisClient = redis.createClient();
redisClient.get("sessionSecret", function(err, reply) {
server.use(session({secret: reply.toString()}));
};
server.listen(8000, function () {
console.log('listening...');
});
server.get('/', function (req, res) {
req.session.aSessionEntry = 'value';
res.send('Your session entry is' + req.session.aSessionEntry);
});
これができないのはなぜですか?