Haskell单子在HappStack中
从 当我运行服务器时,peek计数器会增加Haskell单子在HappStack中,haskell,monads,happstack,Haskell,Monads,Happstack,从 当我运行服务器时,peek计数器会增加 我偷看的时候 当我不偷看的时候 有关守则如下: handlers :: ServerPart Response handlers = msum [ dir "peek" $ do c <- query PeekCounter ok $ toResponse $ "peeked at the count and saw: " ++ show (unCounter c)
- 我偷看的时候
- 当我不偷看的时候
handlers :: ServerPart Response
handlers =
msum [ dir "peek" $ do c <- query PeekCounter
ok $ toResponse $ "peeked at the count and saw: " ++ show (unCounter c)
, do c <- update (AddCounter 1)
ok $ toResponse $ "New count is: " ++ show (unCounter c)
]
处理程序::服务器部分响应
处理程序=
msum[dir“peek”$do c由于浏览器每次加载页面时都会请求/favicon.ico,因此计数会额外增加一次。由于最后一个路由是一个全面路由,对/favicon.ico的请求会导致增加 最简单的修复方法是添加nullDir,这样它只对/,
handlers :: ServerPart Response
handlers =
msum [ dir "peek" $ do c <- query PeekCounter
ok $ toResponse $ "peeked at the count and saw: " ++ show (unCounter c)
, do nullDir
c <- update (AddCounter 1)
ok $ toResponse $ "New count is: " ++ show (unCounter c)
]
处理程序::服务器部分响应
处理程序=
msum[dir“peek”$do c由于浏览器每次加载页面时都会请求/favicon.ico,因此计数会额外增加一次。由于最后一个路由是一个全面路由,对/favicon.ico的请求会导致增加 最简单的修复方法是添加nullDir,这样它只对/,
handlers :: ServerPart Response
handlers =
msum [ dir "peek" $ do c <- query PeekCounter
ok $ toResponse $ "peeked at the count and saw: " ++ show (unCounter c)
, do nullDir
c <- update (AddCounter 1)
ok $ toResponse $ "New count is: " ++ show (unCounter c)
]
处理程序::服务器部分响应
处理程序=
msum[dir“peek”$do c
handlers :: ServerPart Response
handlers =
msum [ dir "peek" $ do c <- query PeekCounter
ok $ toResponse $ "peeked at the count and saw: " ++ show (unCounter c)
, dir "favicon.ico" $ notFound (toResponse "sorry, no favicon.ico")
, do c <- update (AddCounter 1)
ok $ toResponse $ "New count is: " ++ show (unCounter c)
]