如何使用Snap Framework维护服务器端状态? [英] How do I maintain a server-side state with Snap Framework?

查看:161
本文介绍了如何使用Snap Framework维护服务器端状态?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

服务器端会话还不是Snap Framework的一部分。有没有办法添加某种服务器端状态?



假设我想为每个HTTP请求增加一个计数器。我会怎么做?

解决方案

最简单的方法是将状态置于mvar后面:

  fooHandler :: MVar Int  - > Snap()
fooHandler mvar = do
x< - liftIO $ modifyMVar mvar $ \y - >让y'= y + 1 in(y',y')
writeBS $ S.pack $将计数器增加到:++ show x

在网站初始化时初始化mvar。希望这有助于。


Server-side sessions are not [yet] part of the Snap Framework. Is there a way to add some sort of server side state?

Let's pretend I want to increment a counter for each HTTP request. How would I do it?

解决方案

Easiest way is to put the state behind an mvar:

fooHandler :: MVar Int -> Snap ()
fooHandler mvar = do
    x <- liftIO $ modifyMVar mvar $ \y -> let y'=y+1 in (y',y')
    writeBS $ S.pack $ "Incremented counter to: " ++ show x

Initialize the mvar when the site is initialized. Hope this helps.

这篇关于如何使用Snap Framework维护服务器端状态?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆