首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Scotty post类型不允许效果

Scotty post类型不允许效果
EN

Stack Overflow用户
提问于 2014-08-31 04:12:41
回答 1查看 498关注 0票数 4

通过以下方式:

代码语言:javascript
复制
mailHandler = do 
  name  <- param "name"
  email <- param "email"
  renderSendMail $ forwardMail name email

main = scotty 3000 $ post "/mail" mailHandler

我得到以下类型错误:

代码语言:javascript
复制
    Couldn't match type `IO'
                  with `Web.Scotty.Internal.Types.ActionT T.Text IO'
    Expected type: Web.Scotty.Internal.Types.ActionT T.Text IO ()
      Actual type: IO ()
    In a stmt of a 'do' block: renderSendMail $ forwardMail name email
    In the expression:
      do { name <- param "name";
           email <- param "email";
           renderSendMail $ forwardMail name email }
    In an equation for `mailHandler':
        mailHandler
          = do { name <- param "name";
                 email <- param "email";
                 renderSendMail $ forwardMail name email }
Failed to install server-0.0.1
cabal: Error: some packages failed to install:
server-0.0.1 failed during the building phase. The exception was:
ExitFailure 1

花了几个小时之后,我仍然不知道如何解决这个问题。如果我使用Scotty内部的一个函数,没有问题,但是如果我想从外部处理任何事情,我就会得到上面的错误。我怎样才能通过这个Web.Scotty.Internal.Types.ActionT T.Text IO ()

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-31 04:18:34

Web.Scotty.Internal.Types.ActionT T.Text IO ()IO上的一个单变压器。这些通常实现MonadIO类,以便您可以使用liftIO函数(如果还没有导入它,则从Control.Monad.IO.Class )“将”IO操作“提升”到它们中:

代码语言:javascript
复制
liftIO . renderSendMail $ forwardMail name email
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25588883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档