在 Happstack 中使用多个处理程序的语法是什么?
What's the syntax of using multiple handlers in Happstack?
抱歉我的基本问题,但我是 Haskell 的新手。
我正在关注 this example 从请求主体接收一些值,但我的服务器也使用以下代码从目录提供静态文件:
fileServing :: ServerPart Response
fileServing = serveDirectory EnableBrowsing ["index.html"] "./Path/"
mainFunc = simpleHTTP nullConf $ msum [
fileServing
]
我将以下代码添加到我的库中,但我不确定在哪里使用 handlers
函数,因为我已经在 mainFunc
中有一个 msum
。
handlers :: ServerPart Response
handlers =
do decodeBody myPolicy
msum [
myGetData
]
myGetData :: ServerPart Response
myGetData =
do method POST
username <- look "username"
password <- look "password"
ok $ toResponse (username ++ ", " ++ password)
fileServing
、myGetData
、msum [fileServing]
、msum [myGetData]
和handlers
都有ServerPart Response
类型,也就是你的类型在 mainFunc
中传递给 simpleHTTP nullConf
。既然如此,你可能想要...
mainFunc = simpleHTTP nullConf handlers
-- etc.
handlers :: ServerPart Response
handlers =
do decodeBody myPolicy
msum [ fileServing
, myGetData
]
msum
这里将处理程序列表合并为一个处理程序(请注意,这也意味着 msum
在具有单个处理程序的列表上是多余的)。
抱歉我的基本问题,但我是 Haskell 的新手。
我正在关注 this example 从请求主体接收一些值,但我的服务器也使用以下代码从目录提供静态文件:
fileServing :: ServerPart Response
fileServing = serveDirectory EnableBrowsing ["index.html"] "./Path/"
mainFunc = simpleHTTP nullConf $ msum [
fileServing
]
我将以下代码添加到我的库中,但我不确定在哪里使用 handlers
函数,因为我已经在 mainFunc
中有一个 msum
。
handlers :: ServerPart Response
handlers =
do decodeBody myPolicy
msum [
myGetData
]
myGetData :: ServerPart Response
myGetData =
do method POST
username <- look "username"
password <- look "password"
ok $ toResponse (username ++ ", " ++ password)
fileServing
、myGetData
、msum [fileServing]
、msum [myGetData]
和handlers
都有ServerPart Response
类型,也就是你的类型在 mainFunc
中传递给 simpleHTTP nullConf
。既然如此,你可能想要...
mainFunc = simpleHTTP nullConf handlers
-- etc.
handlers :: ServerPart Response
handlers =
do decodeBody myPolicy
msum [ fileServing
, myGetData
]
msum
这里将处理程序列表合并为一个处理程序(请注意,这也意味着 msum
在具有单个处理程序的列表上是多余的)。