通过以下方式:
mailHandler = do
name <- param "name"
email <- param "email"
renderSendMail $ forwardMail name email
main = scotty 3000 $ post "/mail" mailHandler我得到以下类型错误:
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 ()
发布于 2014-08-31 04:18:34
Web.Scotty.Internal.Types.ActionT T.Text IO ()是IO上的一个单变压器。这些通常实现MonadIO类,以便您可以使用liftIO函数(如果还没有导入它,则从Control.Monad.IO.Class )“将”IO操作“提升”到它们中:
liftIO . renderSendMail $ forwardMail name emailhttps://stackoverflow.com/questions/25588883
复制相似问题