当前位置: 首页 > 面试题库 >

将Express / Redis用于会话存储时,“会话”未定义

平学
2023-03-14
问题内容

我正在尝试在我的Express应用程序中使用redis进行会话。

我执行以下操作:

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是未定义的 (我可以从config部分的console.log条目中看到)

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


问题答案:

看起来您失踪了:

app.use(express.cookieParser());

app.use(express.session(...));打电话之前。

看这里。



 类似资料:
  • 问题内容: 如果一个用户已经登录并尝试在新实例中再次登录,我希望它注销另一个用户实例。我不希望同一用户在我的应用程序上登录两次。 当前会话存储在Redis存储中,我正在使用express / connect处理会话存储。可以用来破坏会话的可用功能之一如下: 但是,我需要在调用.destroy()之前找到该会话ID。在Redis中,用户名存储为会话的一部分。 问题:是否可以查询Redis以基于用户名

  • 我试图使用Spring Cloud的Zuul、Eureka和我自己的服务实现微服务架构。我有多个具有UI和服务的服务,每个服务都可以使用x509安全性对用户进行身份验证。现在我想把祖尔放在那些服务机构的前面。由于Zuul无法将客户端证书转发到后端,我认为下一个最好的方法是在Zuul的前门对用户进行身份验证,然后使用Spring会话在后端服务中复制他们的身份验证状态。我遵循了Dave Syer的教程

  • sessionStorage 会话存储 存储针对QQ帐号隔离 数据存储于内存中,当前游戏结束后被清空 函数 key( index ) 获取对应索引的key 手q 版本7.8.5 参数 参数名 类型 说明 index number 索引值 返回值 类型 说明 string 说明 示例 var stringKey = BK.sessionStorage.key(0); getItem( key )

  • 我按照教程步骤尝试SBT: 有什么想法可以解决这个问题吗?

  • 问题内容: 我目前正在使用MySql来存储我的会话。效果很好,但是有点慢。 我曾经被要求使用Redis,但是我想知道这是否是一个好主意,因为我听说Redis会延迟写入操作。我有点害怕,因为会话需要是实时的。 有没有人遇到过这样的问题? 问题答案: Redis非常适合存储会话。所有操作都在内存中执行,因此读和写将很快。 第二个方面是会话状态的持久性。Redis使您可以灵活地将会话状态持久化到硬盘。您

  • 我已经编辑了php配置以保存Redis上的会话。一切正常,但我意识到,有一天已经过去了,通过在redis-cli上运行命令键*,显示了一个巨大的php-session条目列表。我的问题是php是否会在任何时候删除这些键,或者我必须做一些事情来防止这种情况发生。我对此很担心。