首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis商店没有get的方法吗?

Redis商店没有get的方法吗?
EN

Stack Overflow用户
提问于 2011-09-14 13:54:54
回答 3查看 3K关注 0票数 2

http://senchalabs.github.com/connect/middleware-session.html提到..。“每个会话存储必须实现以下方法:”

  1. .get(sid,回调)
  2. .set(sid,session,回调)
  3. .destroy(sid,回调)

我使用以下代码尝试获取SID:

Node JavaScript,使用Socket.io连接

代码语言:javascript
复制
io.sockets.on('connection', function(socket) {
  var sid = socket.id;
  if (sid) {
    sessionStore.get(sid, function (error, session) {
      console.log("Connect Sid: " + sid);
    });
  }
});

我得到了以下错误:

代码语言:javascript
复制
TypeError: Object function RedisStore(options) {
    options = options || {};
    Store.call(this, options);
    this.client = new redis.createClient(options.port || options.socket, options.host, options);
    if (options.pass) {
      this.client.auth(options.pass, function(err){
        if (err) throw err;
      });    
    }

    if (options.db) {
      var self = this;
      self.client.select(options.db);
      self.client.on("connect", function() {
        self.client.send_anyways = true;
        self.client.select(options.db);
        self.client.send_anyways = false;
      });
    }
  } has no method 'get'

红系植物

代码语言:javascript
复制
//Redis store for storage
var sessionStore = require('connect-redis')(express); 
...
...
app.use(express.session({secret: "keyboard cat",store: new sessionStore}));
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-14 14:25:52

摘自:https://github.com/visionmedia/connect-redis

代码语言:javascript
复制
This means express users may do the following, since express.session.Store points to the connect.session.Store function:

这似乎是可行的:

代码语言:javascript
复制
express.session.Store(sid, function(){ console.log("Connect Sid: " + sid); });
票数 0
EN

Stack Overflow用户

发布于 2011-09-14 14:00:33

看起来您可能在实例化商店时忘记输入new了吗?

票数 1
EN

Stack Overflow用户

发布于 2012-07-28 22:13:42

我这样做:

代码语言:javascript
复制
var RedisStore = require('connect-redis')(express); 
var sessionStore = new RedisStore; 
...
app.use(express.session({secret: "keyboard cat",store: sessionStore}));

这样,以后如果需要,可以使用sessionStore对象从socket.io代码中引用会话数据。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7417500

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档