我仍在尝试了解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>
答案 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"