当会话存储使用express / redis时,'session'是未定义的 [英] 'session' is undefined when using express / redis for session store

查看:110
本文介绍了当会话存储使用express / redis时,'session'是未定义的的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我执行以下操作:

  var express = require('express'); 
var RedisStore = require('connect-redis')(express);

app.configure('development',function(){
app.use(express.session({secret:password,
store:new RedisStore({
host:127.0.0.1,
port:6379,
db:mydb
})
}));

稍后,在我的应用程序中,如果我执行以下操作:

  var whatever = req.session.someProperty; 

我得到:


无法读取未定义的属性someProperty


这表示req.session是未定义的
(我可以在配置部分的console.log条目中看到这一点)



我已经确定redis运行,并且可以看到我的应用程序最初连接到它(使用redis-cli监视器)

解决方案

看起来你错过了:

 使用(express.cookieParser());在$  app.use(express.session(...)之前)

; call。



请参阅 here


I'm trying to use redis for sessions in my express app.

I do the following:

var express = require('express');
var RedisStore = require('connect-redis')(express);

app.configure('development', function(){     
    app.use(express.session({ secret: "password", 
                            store: new RedisStore({
                                          host: "127.0.0.1",
                                          port: "6379",
                                          db: "mydb"
                                        })  
          }));

Later on, in my app, if i do something like:

var whatever = req.session.someProperty;

I get:

Cannot read property 'someProperty' of undefined

This indicates that req.session is undefined (I can see this from a console.log entry in my config section)

I've definitely got redis running, and can see my app connects to it initially (using redis-cli monitor)

解决方案

Looks like you're missing:

app.use(express.cookieParser());

before your app.use(express.session(...)); call.

See here.

这篇关于当会话存储使用express / redis时,'session'是未定义的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆