1

Now.js 引用:

只需在 nowjs.initialize 中传递一个 connect 或 express http 服务器,this.user.session 应该可用。

所以:

express = require 'express'
app = module.exports = express.createServer()
connect = require 'connect'
nowjs = require 'now'
everyone = nowjs.initialize(app)

this.user 的输出是:

{ 
  clientId: '353725111301231610',
  cookie: { 'connect.sid': 's0meC00k1e1nF0rm4ti0n' },
  session: undefined 
}

知道为什么会话未定义吗?

4

2 回答 2

4

我遇到了这个问题,事实证明它正在发生,因为我在配置 express 之前初始化了 NowJS。

app.configure(function(){
    ...

    app.use(express.cookieParser());
    app.use(express.session({ secret: "my_key", store: redisStore }));
    app.use(app.router);
});

var everyone = nowjs.initialize(app); //must be defined after app.configure

需要注意的一件事是,在向服务器发出请求之前不会设置会话,因此如果重置服务器,客户端套接字将重新连接,但会话将未定义,直到浏览器刷新页面。

于 2012-03-05T05:23:49.580 回答
0

我设法为每个“每个人”的请求找到了一个解决方案(CoffeeScript):

self = this
sid = decodeURIComponent(this.user.cookie['connect.sid'])
sessionStore.get sid, (err, session) ->
    self.user.session = session
    <<more code here>>

有什么方法可以直接访问 this.user.session 吗?

于 2012-02-07T16:59:41.083 回答