server.fnl (676B)
1 (local server (require :http.server)) 2 (local headers (require :http.headers)) 3 4 (fn on-stream [handler sv out] 5 (let [hdrs (out:get_headers) 6 method (hdrs:get ":method") 7 path (or (hdrs:get ":path") "/")] 8 (let [body (handler (out:get_body_as_string))] 9 (doto (headers.new) 10 (: :append ":status" :200) 11 (: :append :content-type :text/plain) 12 (out:write_headers false)) 13 (out:write_chunk body true)))) 14 15 (fn new-server [handler] 16 (server.listen 17 { 18 :host :localhost 19 :port 8201 20 :onstream (partial on-stream handler) 21 })) 22 23 { :new new-server } 24 25 ;(srv:listen) 26 ;(srv:loop)