每个 Route 是否包含它的 Request 和 Server 返回的 Response?
Does each Route include its Request and the Response returned by the Server?
对于每个 dir..
,它是一个 Route
,它接受 Request
和 returns 由 Server
创建的 Response
.我想知道代码的每一行中是否包含 Request
和 Response
。提前致谢!
simpleHTTP serverConf $ do
decodeBody (defaultBodyPolicy "/tmp/" 4096 4096 4096)
msum [ do
nullDir
seeOther "graph" (toResponse "Redirecting to /graph"),
dir "grid" gridResponse,
dir "graph" graphResponse,
dir "image" graphImageResponse,
dir "timetable-image" $ look "courses" >>= \x -> look "session" >>= timetableImageResponse x,
dir "graph-fb" $ seeOther redirectUrlGraphEmail $ toResponse "",
dir "post-fb" $ seeOther redirectUrlGraphPost $ toResponse "",
dir "test" $ look "code" >>= getEmail,
dir "test-post" $ look "code" >>= postToFacebook,
dir "post" postResponse,
dir "draw" drawResponse,
dir "about" $ aboutResponse aboutContents,
dir "privacy" $ privacyResponse privacyContents,
dir "static" $ serveDirectory DisableBrowsing [] staticDir,
dir "course" $ look "name" >>= retrieveCourse,
dir "all-courses" $ liftIO allCourses,
dir "graphs" $ liftIO queryGraphs,
dir "course-info" $ look "dept" >>= courseInfo,
dir "depts" $ liftIO deptList,
dir "timesearch" searchResponse,
dir "calendar" $ lookCookieValue "selected-lectures" >>= calendarResponse,
dir "get-json-data" $ look "graphName" >>= \graphName -> liftIO $ getGraphJSON graphName,
dir "loading" $ look "size" >>= loadingResponse,
dir "save-json" $ look "jsonData" >>= \jsonStr -> look "nameData" >>= \nameStr -> liftIO $ saveGraphJSON jsonStr nameStr,
notFoundResponse
]
每一行都是一个处理程序。将处理程序视为接受请求和 returns 响应的函数。
graphReponse
是以某种方式处理请求的处理程序。
dir
修改处理程序,以便它不会被调用,除非请求 url 以某种方式开始。
在处理程序的名称中包含 Response
一词并没有什么特别之处。 graphResponse
只是函数的名称 - 您可以为处理函数使用任何名称。
您拥有的是处理程序列表,例如:
[ handler1,
handler2,
...,
notFoundResponse
]
当收到请求时,会检查 handler1
是否会处理该请求。如果不是,则检查 handler2
等等。如果没有处理程序接受请求,则调用 notFoundHandler
,这可能会生成 404 页面。
这就是 dir ...
部分很重要的原因 - 它会阻止处理程序响应,除非 url 以某种方式开始。
对于每个 dir..
,它是一个 Route
,它接受 Request
和 returns 由 Server
创建的 Response
.我想知道代码的每一行中是否包含 Request
和 Response
。提前致谢!
simpleHTTP serverConf $ do
decodeBody (defaultBodyPolicy "/tmp/" 4096 4096 4096)
msum [ do
nullDir
seeOther "graph" (toResponse "Redirecting to /graph"),
dir "grid" gridResponse,
dir "graph" graphResponse,
dir "image" graphImageResponse,
dir "timetable-image" $ look "courses" >>= \x -> look "session" >>= timetableImageResponse x,
dir "graph-fb" $ seeOther redirectUrlGraphEmail $ toResponse "",
dir "post-fb" $ seeOther redirectUrlGraphPost $ toResponse "",
dir "test" $ look "code" >>= getEmail,
dir "test-post" $ look "code" >>= postToFacebook,
dir "post" postResponse,
dir "draw" drawResponse,
dir "about" $ aboutResponse aboutContents,
dir "privacy" $ privacyResponse privacyContents,
dir "static" $ serveDirectory DisableBrowsing [] staticDir,
dir "course" $ look "name" >>= retrieveCourse,
dir "all-courses" $ liftIO allCourses,
dir "graphs" $ liftIO queryGraphs,
dir "course-info" $ look "dept" >>= courseInfo,
dir "depts" $ liftIO deptList,
dir "timesearch" searchResponse,
dir "calendar" $ lookCookieValue "selected-lectures" >>= calendarResponse,
dir "get-json-data" $ look "graphName" >>= \graphName -> liftIO $ getGraphJSON graphName,
dir "loading" $ look "size" >>= loadingResponse,
dir "save-json" $ look "jsonData" >>= \jsonStr -> look "nameData" >>= \nameStr -> liftIO $ saveGraphJSON jsonStr nameStr,
notFoundResponse
]
每一行都是一个处理程序。将处理程序视为接受请求和 returns 响应的函数。
graphReponse
是以某种方式处理请求的处理程序。
dir
修改处理程序,以便它不会被调用,除非请求 url 以某种方式开始。
在处理程序的名称中包含 Response
一词并没有什么特别之处。 graphResponse
只是函数的名称 - 您可以为处理函数使用任何名称。
您拥有的是处理程序列表,例如:
[ handler1,
handler2,
...,
notFoundResponse
]
当收到请求时,会检查 handler1
是否会处理该请求。如果不是,则检查 handler2
等等。如果没有处理程序接受请求,则调用 notFoundHandler
,这可能会生成 404 页面。
这就是 dir ...
部分很重要的原因 - 它会阻止处理程序响应,除非 url 以某种方式开始。