diff --git a/bin/nikodream.ml b/bin/nikodream.ml index c3164ce..a36ae3d 100644 --- a/bin/nikodream.ml +++ b/bin/nikodream.ml @@ -7,32 +7,23 @@ let failed = ref 0 (* middleware *) let count_requests inner_handler request = try%lwt - (inner_handler request) >>= (fun response -> - successful := !successful + 1; - Lwt.return response) - + inner_handler request >>= fun response -> + successful := !successful + 1; + Lwt.return response with exn -> failed := !failed + 1; raise exn let () = - Dream.run - @@ Dream.logger - @@ count_requests - @@ Dream.router [ - Dream.get "/" - (fun _ -> - Dream.html "Hello, world!"); - - Dream.get "/error" - (fun _ -> - failwith "failed on purpose"); - - Dream.get "/count" - (fun _ -> - Dream.html (Printf.sprintf "%3i successful requests
%3i failed requests" !successful !failed)); - - Dream.get "/echo/:word" - (fun request -> - Dream.html (Dream.param request "word")); - ] + Dream.run @@ Dream.logger @@ count_requests + @@ Dream.router + [ + Dream.get "/" (fun _ -> Dream.html "Hello, world!"); + Dream.get "/error" (fun _ -> failwith "failed on purpose"); + Dream.get "/count" (fun _ -> + Dream.html + (Printf.sprintf "%3i successful requests
%3i failed requests" + !successful !failed)); + Dream.get "/echo/:word" (fun request -> + Dream.html (Dream.param request "word")); + ]