gpt4 book ai didi

node.js - NodeJS + ExpressJS + RedisStore session 未定义

转载 作者:IT王子 更新时间:2023-10-29 06:05:42 26 4
gpt4 key购买 nike

我已经针对同一问题解决了很多问题,但各种解决方案都没有帮助。我正在使用 Redis 在集群 NodeJS+ExpressJS 应用程序中存储 session ,但 session 始终未定义。这是我的 Express 设置:

var express = require('express'),
RedisStore = require('connect-redis')(express),
Config = require('./config/config'),
cluster = require("cluster"),
QueryManager = require('./service/query_manager'),
app = express();



// --- Index --- //
function renderSplash(req, res) {
res.render(...);
}
function renderIndex(req, res) {
res.render(...);
}

app.get('/', function(req, res) {
if(req.session.user === null) {
renderSplash(req, res);
} else {
renderIndex(req, res);
}
});

// --- Configuration ---//
//EJS
app.engine('.html', require('ejs').__express);
app.set('view engine', 'html');
app.set('views', __dirname + '/public');

app.configure(function() {
//Session
app.use(express.cookieParser());
app.use(express.session({
store: new RedisStore({
host: Config.redis.host,
port: Config.redis.port
}),
secret: 'Its a secret.',
cookie: { secure: true }
}));

app.use(validateRequest); //Ensures we're at www. to hit the LB
app.use(express.static(__dirname+'/public'));
app.use(express.compress);
app.use(app.router);
});

即使不使用 Redis 存储,我也会收到以下错误:TypeError:无法读取未定义的属性“用户”

最佳答案

您必须在路由之前实例化 session 。

var express = require('express'),
RedisStore = require('connect-redis')(express),
Config = require('./config/config'),
cluster = require("cluster"),
QueryManager = require('./service/query_manager'),
app = express();

app.use(express.cookieParser());
app.use(express.session({
store: new RedisStore({
host: Config.redis.host,
port: Config.redis.port
}),
secret: 'Its a secret.',
cookie: { secure: true }
}));

// --- Index --- //
function renderSplash(req, res) {
res.render(...);
}
function renderIndex(req, res) {
res.render(...);
}

app.get('/', function(req, res) {
if(req.session.user === null) {
renderSplash(req, res);
} else {
renderIndex(req, res);
}
});

关于node.js - NodeJS + ExpressJS + RedisStore session 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20752898/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com