Как сделать простой обработчик с помощью Haskell Spock - PullRequest
0 голосов
/ 29 марта 2019

Я действительно изо всех сил пытаюсь понять веб-фреймворки Haskell.Мое большое зависание связано с этой param' функцией, которая, кажется, принимает только один параметр в виде строки и возвращает параметр формы (и параметр строки запроса ???).

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

Все примеры, которые я вижу, обрабатывают маршруты в основной функции, однако я хотел бы создать контроллеры, подобные обработчикам.Я не могу найти способ использовать функцию магического параметра вне контекста основного приложения.Есть ли способ сделать это?Также эта функция '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

Также возможно получить параметры в виде карты вместо того, чтобы проходить один за другим через функцию param '?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...