0

使用 Zappa 启用会话的正确方法是什么?

Zappa Crash Course 暗示我只需要,@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}
4

1 回答 1

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请求,可以这么说......

更新:另请注意,与requestzappa 中的其他属性一样,session已复制到this,因此您可以@session直接访问。也没有sessionIdon request,但有一个@session.id,您可能想要下面的路线:

@get '/': -> 
  console.log( @session )
  @render 'index.eco', {loginkey: @session.id}
于 2012-02-29T09:39:02.220 回答