如何使用Haskell Spock制作简单的处理程序

时间:2019-03-29 17:23:15

标签: haskell-spock

我真的很难理解Haskell Web框架。我最大的麻烦在于这个param'函数,该函数似乎仅将一个参数作为字符串并返回表单参数(和查询字符串参数???)。

get "login"
    loginView
post "login" $ do
    email <- param' "email"
    pass  <- param' "password"
    text ( email <> " " <> pass)

我看到的所有示例都在main函数中处理路由,但是我想创建类似处理程序的控制器。我无法找出一种在Main应用程序上下文之外使用magic param功能的方法。有办法吗?该param函数也采用隐式参数(例如在scala中)。我不明白如何用一个参数来获取表单参数。

这是id想要做什么的一个例子。

LoginHandlers.hs

getLogin :: ???
getLogin = loginView

postLogin :: ???
postLogin = do
    email <- param' "email"
    pass  <- param' "password"
    text ( email <> " " <> pass )

Main.hs

app :: SpockM () MySession MyAppState ()
app = do
    get "login" $
        getLogin
    post "login" $
        postLogin

是否还可以将参数作为Map获取,而不是通过param'函数一一查看?

0 个答案:

没有答案