在 Happstack 中使用多个处理程序的语法是什么?



对不起我的基本问题,但我是Haskell的新手。

我正在遵循此示例以从请求正文中接收一些值,但是我的服务器还使用以下代码从目录中提供静态文件:

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)

fileServingmyGetDatamsum [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是多余的(。

相关内容

  • 没有找到相关文章

最新更新