如何在以下`myApp` haskell函数中添加逻辑?

时间:2015-01-05 05:20:36

标签: haskell yesod haskell-warp

我仍在尝试了解haskell语法的工作原理。所以,这是一个简单的wai / warp应用程序。

{-# LANGUAGE OverloadedStrings #-}
import Network.Wai
import Network.HTTP.Types (status200)
import Network.Wai.Handler.Warp (run)

myApp _ respond = respond $
    responseLBS status200 [("Content-Type", "text/plain")] "Hello World" 

main = run 3000 myApp 

如果我想在返回状态200和“Hello World”纯文本之前用stdout 打印一些文本到putStrLn,我该如何实现呢?< / p>

1 个答案:

答案 0 :(得分:1)

myApp有这种类型:

myApp :: Request -> (Response -> IO ResponseReceived) -> IO ResponseReceived

因此您可以在返回响应之前添加自己的IO操作:

myApp _ respond = do putStrLn "processing request"
                     respond $ responseLBS status200 [("Content-Type", "text/plain")] "Hello World"