Now.js引用:
只需在nowjs.initialize中传递一个连接或表达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
}
知道会话未定义的原因吗?
答案 0 :(得分: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
需要注意的一点是,在向服务器发出请求之前不会设置会话,因此如果重置服务器,则客户端套接字将重新连接,但会话将不确定,直到浏览器执行页面刷新。
答案 1 :(得分: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?