2014-03-24 78 views
30

我想在Haskell中使用warp網絡服務器創建一個網站。由於我是一名Haskell初學者,像this one這樣的例子對我來說很複雜。最小warp網絡服務器示例

任何人都可以告訴我一個簡單的,如何使用最小的例子warp

注意:這個問題故意顯示沒有研究工作,因爲它被回答Q & A-樣式。

回答

44

這是最小的Hello World使用warp 3.0+的應用程序。運行它,然後導航到http://localhost:3000。此示例將顯示Hello world

爲了保持此示例最小化,URL路徑根本不處理(相同的內容是爲任何路徑傳遞的)。對於包含URL路徑處理稍長的例子,看到the Haskell Wiki

{-# LANGUAGE OverloadedStrings #-} 

import Network.Wai (responseLBS, Application) 
import Network.Wai.Handler.Warp (run) 
import Network.HTTP.Types (status200) 
import Network.HTTP.Types.Header (hContentType) 

main = do 
    let port = 3000 
    putStrLn $ "Listening on port " ++ show port 
    run port app 

app :: Application 
app req f = 
    f $ responseLBS status200 [(hContentType, "text/plain")] "Hello world!" 

更新2014-06-20:經3.0包括了一些API的變化 - 體現它們放回代碼。

+6

請解釋downvote,只是downvoting這不會使任何更好的文章! –

+2

這個例子似乎不適用於當前版本的Warp(3.0.0.3)? 無法匹配類型'Network.Wai.Internal.Response' 'IO Network.Wai.Internal.ResponseReceived' – Fil

+1

@Fil感謝您的報告,我會看看它! –