2012-02-29 30 views
0

使用Zappa启用会话的正确方法是什么?Zappa中的会话(node.js)

Zappa速成班意味着我只需要@use 'cookies', session: {secret: 'asdf'}但这不是输出@request.session - 我是否错过了一些东西?我打电话给console.log会导致undefined正在打印。

require('zappa') '0.0.0.0', '8080', -> 

    @use 'bodyParser', 
     'methodOverride', 
     @app.router, 
     'static', 
     'cookies', 
     'cookieParser', 
     session: {secret: '5465hfgh3t4grf'} 

    @configure 
    development: => @use errorHandler: {dumpExceptions: on} 
    production: => @use 'errorHandler' 

    @get '/': -> 
    console.log(@request.session) 
    @render 'index.eco', {loginkey: @request.sessionID} 

回答

2

你需要有session中间件你的路由上面:

require('zappa') '0.0.0.0', '8080', -> 

    @use 'bodyParser', 
     'methodOverride', 
     'cookies', 
     'cookieParser', 
     session: {secret: '5465hfgh3t4grf'}, 
     @app.router, 
     'static' 

    @configure 
    development: => @use errorHandler: {dumpExceptions: on} 
    production: => @use 'errorHandler' 

    @get '/': -> 
    console.log(@request.session) 
    @render 'index.eco', {loginkey: @request.sessionID} 

否则,你不会对请求session,直到你的路线已被执行之后,可以这么说...

更新:还要注意的是,像在扎帕request其他属性,session被复制到this,这样你就可以访问直接。还有在request没有sessionId,但有一个@session.id,你可能要低于替代路线:

@get '/': -> 
    console.log(@session) 
    @render 'index.eco', {loginkey: @session.id}