首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Zappa中的会话(node.js)

Zappa中的会话(node.js)
EN

Stack Overflow用户
提问于 2012-02-29 13:16:33
回答 1查看 439关注 0票数 0

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

Zappa速成课程暗示我只需要@use 'cookies', session: {secret: 'asdf'},但这并不是导出@request.session --我是否遗漏了什么?我调用下面的console.log会打印出undefined

代码语言:javascript
复制
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}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-29 17:39:02

您需要将session中间件放在路由之上:

代码语言:javascript
复制
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

更新:还注意到,像zappa中request上的其他属性一样,session被复制到this,因此您可以直接访问@sessionrequest上也没有sessionId,但有@session.id,您可能需要以下路由:

代码语言:javascript
复制
@get '/': -> 
  console.log( @session )
  @render 'index.eco', {loginkey: @session.id}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9493931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档