Scotty和POST params

时间:2014-12-01 17:07:05

标签: haskell post scotty

我现在对Scotty网络服务器存在问题 - rescue不适用于不合理的参数 - 我仍然使用以下代码获得404:

post "/newsletter/create" ( do
  (param "subscriber[email]") `rescue` (\msg -> text msg)
  formContent <- param "subscriber[email]"
  text $ "found! " ++ show formContent )

我可以看到,当我只使用params时,我的数据就在那里,并使用&#34; subscriber[email]&#34;编制索引。 [逃脱了会有什么问题吗?对此的任何帮助都是巨大的。

1 个答案:

答案 0 :(得分:3)

通过一些清理,我得到了它的工作:

{-# LANGUAGE OverloadedStrings #-}

import Web.Scotty
import qualified Data.Text.Lazy as TL

main = scotty 3000 $ do
  post "/newsletter/create" $ do
    formContent <- (param "subscriber[email]") `rescue` (\msg -> return msg)
    text $ "found! " `TL.append` formContent

我进行了一些修改,但关键是rescue被用作param的包装,而不是改变任何内部状态,因此你不应该调用它两次。方括号不会给我带来任何麻烦。