Сессии в Заппе (node.js) - PullRequest
       19

Сессии в Заппе (node.js)

0 голосов
/ 29 февраля 2012

Как правильно использовать сеансы с Zappa?

Ускоренный курс 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}

1 Ответ

2 голосов
/ 29 февраля 2012

Вам нужно иметь промежуточное ПО 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 в zappa, session копируется в this, поэтому вы можете получить прямой доступ к @session. Также нет sessionId на request, но есть @session.id, вам может потребоваться маршрут ниже:

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