首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在WAI (Warp)应用程序中执行IO

如何在WAI (Warp)应用程序中执行IO
EN

Stack Overflow用户
提问于 2011-10-15 01:48:59
回答 1查看 601关注 0票数 8

我有一个简单的WAI应用程序(在这个例子中是Warp),它用"Hi“响应所有的web请求。我还希望它在每次处理请求时在服务器上显示"Said hi“。如何在WAI响应处理程序中执行IO?下面是我的应用程序:

代码语言:javascript
复制
{-# LANGUAGE OverloadedStrings #-}
import Network.Wai
import Network.HTTP.Types (status200)
import Network.Wai.Handler.Warp (run)

main :: IO ()
main = do
    putStrLn "http://localhost:3000/"
    run 3000 app

app :: Application
app _ = return hello

hello = responseLBS status200 [("Content-Type", "text/plain")] "Hi"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-15 01:58:44

WAI应用程序的类型为:

代码语言:javascript
复制
type Application = Request -> Iteratee ByteString IO Response

这意味着WAI应用程序通过IOIteratee monad转换器中运行,因此您必须使用liftIO来执行常规的IO操作。

代码语言:javascript
复制
import Control.Monad.Trans

app _ = do
    liftIO $ putStrLn "Said hi"
    return hello
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7771523

复制
相关文章

相似问题

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