问题如下
![使用req.session.xxx时出现 Cannot set property ‘xxxx‘ of undefined 使用req.session.xxx时出现 Cannot set property ‘xxxx‘ of undefined](/default/index/img?u=aHR0cHM6Ly93d3cuaWNvZGU5LmNvbS9pL2xsLz9pPTIwMjAxMjE0MjAxMjI3NzA0LnBuZz8sdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrLHNoYWRvd18xMCx0ZXh0X2FIUjBjSE02THk5aWJHOW5MbU56Wkc0dWJtVjBMM0Z4WHpReE56WTNPVFExLHNpemVfMTYsY29sb3JfRkZGRkZGLHRfNzA=)
查看app.js 代码发现引入的session模块 为灰色没有使用
![使用req.session.xxx时出现 Cannot set property ‘xxxx‘ of undefined 使用req.session.xxx时出现 Cannot set property ‘xxxx‘ of undefined](/default/index/img?u=aHR0cHM6Ly93d3cuaWNvZGU5LmNvbS9pL2xsLz9pPTIwMjAxMjE0MjAxNDQxMjUucG5nPyx0eXBlX1ptRnVaM3BvWlc1bmFHVnBkR2ssc2hhZG93XzEwLHRleHRfYUhSMGNITTZMeTlpYkc5bkxtTnpaRzR1Ym1WMEwzRnhYelF4TnpZM09UUTEsc2l6ZV8xNixjb2xvcl9GRkZGRkYsdF83MA==)
查看express-session中的官方文档其中req.session使用案例为:
// Use the session middleware
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
// Access the session as req.session
app.get('/', function(req, res, next) {
if (req.session.views) {
req.session.views++
res.setHeader('Content-Type', 'text/html')
res.write('<p>views: ' + req.session.views + '</p>')
res.write('<p>expires in: ' + (req.session.cookie.maxAge / 1000) + 's</p>')
res.end()
} else {
req.session.views = 1
res.end('welcome to the session demo. refresh!')
}
})
发现没有配置session的中间件
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
固配置中间件
// 配置session的中间件
app.use(session({ secret: 'secret key' }));
运行结果显示正常:
![使用req.session.xxx时出现 Cannot set property ‘xxxx‘ of undefined 使用req.session.xxx时出现 Cannot set property ‘xxxx‘ of undefined](/default/index/img?u=aHR0cHM6Ly93d3cuaWNvZGU5LmNvbS9pL2xsLz9pPTIwMjAxMjE0MjAyMjU1NTI1LnBuZz8sdHlwZV9abUZ1WjNwb1pXNW5hR1ZwZEdrLHNoYWRvd18xMCx0ZXh0X2FIUjBjSE02THk5aWJHOW5MbU56Wkc0dWJtVjBMM0Z4WHpReE56WTNPVFExLHNpemVfMTYsY29sb3JfRkZGRkZGLHRfNzA=)