Node.js NodeJS Expres+;Redistore,请求会话始终未定义
我确实看到了一些类似的问题,但九个问题可以解决我的问题 在nodeJS Express应用程序中始终未定义req.session。 在express/connect redis/和express会话包上使用最新版本Node.js NodeJS Expres+;Redistore,请求会话始终未定义,node.js,express,redis,Node.js,Express,Redis,我确实看到了一些类似的问题,但九个问题可以解决我的问题 在nodeJS Express应用程序中始终未定义req.session。 在express/connect redis/和express会话包上使用最新版本 var express = require('express') ; var app = express() ; var port = process.env.PORT || 8008 ; var mongoose = require('mongoose') ; var cooki
var express = require('express') ;
var app = express() ;
var port = process.env.PORT || 8008 ;
var mongoose = require('mongoose') ;
var cookieParser = require('cookie-parser') ;
var bodyParser = require('body-parser');
var session = require('express-session') ;
var RedisStore = require('connect-redis')(session);
var Hash = require('password-hash') ;
var helmet = require('helmet') ;
app.use(express.static(__dirname + "/view" )) ;
app.use(cookieParser() );
app.use(bodyParser()) ;
app.use(session({
saveUninitialized: true,
resave: true ,
store: new RedisStore({
host: 'localhost',
port: 7379,
db: 2,
pass: 'somePassworD'
}),
secret: 'someSecret' ,
//cookie: { secure: true}
})
);
app.use(helmet()) ;
app.use(function (req, res, next) {
res.locals.csrftoken = req.session._csrf;
next();
}) ;
错误消息:
TypeError: Cannot read property '_csrf' of undefined
当您使用中间件时,将出现CSRF令牌
var express = require('express') ;
var app = express() ;
var port = process.env.PORT || 8008 ;
var csrf = require('csurf')
var mongoose = require('mongoose') ;
var cookieParser = require('cookie-parser') ;
var bodyParser = require('body-parser');
var session = require('express-session') ;
var RedisStore = require('connect-redis')(session);
var Hash = require('password-hash') ;
var helmet = require('helmet') ;
app.use(express.static(__dirname + "/view" )) ;
app.use(cookieParser() );
app.use(bodyParser()) ;
app.use(session({
saveUninitialized: true,
resave: true ,
store: new RedisStore({
host: 'localhost',
port: 7379,
db: 2,
pass: 'somePassworD'
}),
secret: 'someSecret' ,
//cookie: { secure: true}
})
);
app.use(csrf());
app.use(helmet()) ;
app.use(function (req, res, next) {
res.locals.csrftoken = req.session._csrf;
next();
}) ;
评论csrf系列并没有解决问题,我相信问题出在redis Store上,评论出这一部分以某种方式解决了问题!