0

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

4

1 回答 1

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"
于 2015-01-05T05:32:13.127 回答