1

我现在遇到了 Scotty Web 服务器的问题 -rescue不适用于未找到的参数 - 我仍然收到带有以下代码的 404:

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

我可以看到,当我只是使用时params,我的数据就在那里,并用“”索引subscriber[email][逃跑有什么事情吗?对此的任何帮助都将是巨大的。

4

1 回答 1

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,而不是改变任何内部状态,因此你不应该调用它两次。方括号没有给我带来任何麻烦。

于 2014-12-01T18:17:45.927 回答