2012-05-15 76 views
0

是否有一些简单的例子,如何在towerjs中使用cookie或会话? 我阅读了关于连接中间件的内容,但我没有经验(不幸的是,也有node.js)。Cookie和会话在towerjs

如果示例不可用,我将不胜感激任何提示。

的Marcin

回答

1

饼干

从TowerJS源代码here,控制器具有以下属性:

  • @request
  • @response
  • @cookies(这仅仅是@request.cookies的快捷方式)
  • @session(这仅仅是@request.session快捷方式)

因此设置Cookie,你可以按照快递文档here

例如这套饼干 '与rememberMe'

# "Remember me" for 15 minutes 
@response.cookie 'rememberme', 'yes', 
    expires: new Date(Date.now() + 900000) 
    httpOnly: true 

而得到的cookie

@request.cookies.rememberme 

Session

至于会话,看起来它只是在内存会话中连接。看到这里的源代码 https://github.com/viatropos/tower/blob/master/src/tower/server/application.coffee#L39

所以你可以使用它像:

@request.session.something = 'something' 

@session.something = 'something' 

好希望帮助...

+0

是的,这是我所需要的。 只是一件事。当我在你的示例@ session.something ='something'中创建会话变量时,我应该可以在所有子网站中访问此变量。但是我没有。在其他子网站,我得到“未定义”输出。 无论如何非常感谢你。饼干效果不错:) –

+0

我不太确定'subsite'是什么意思,但基本上,因为Tower使用的默认会话存储是'内存',因此它与单个node.js流程相关联。如果你有多个node.js进程,那么你需要在外部存储会话,例如https://github.com/visionmedia/connect-redis – 250R

+0

啊,好的。谢谢。 :) –

0

在Tower.js GitHub库他们正在使用中的示例here会话。也许你可以在那里得到一些帮助。我不是咖啡剧本的人,所以我的帮助是有限的。 ;)

但是,这是他们配置会话/ cookie支持:

// config/application.coffee 
@use "cookieParser", Tower.config.session.key 
@use "session", secret: Tower.config.session.secret, cookie: {domain: Tower.config.session.cookie.domain} 

我希望我能帮助至少一点点! )

+0

感谢您的关注。是的,我正在尝试使用此配置,并且正在尝试从http://www.senchalabs.org/connect/session.html 实施“查看计数器”示例。很遗憾,没有结果。那么我会进一步挖掘。 迎接! :) –