Я следую учебному пособию, в котором объясняется, как сделать простой веб-сервер в OCaml с lwt
и Cohttp
.Ошибка: поле незаблокированной записи Server.callback - Ocaml
У меня есть _tags
файл, который содержит следующее:
true: package(lwt), package(cohttp), package(cohttp.lwt)
И в webserver.ml
:
open Lwt
open Cohttp
open Cohttp_lwt_unix
let make_server() =
let callback conn_id req body =
let uri = Request.uri req in
match Uri.path uri with
| "/" -> Server.respond_string ~status:`OK ~body:"hello!\n"()
| _ -> Server.respond_string ~status:`Not_found ~body:"Route not found"()
in
let conn_closed conn_id() =() in
Server.create { Server.callback; Server.conn_closed }
let _ =
Lwt_unix.run (make_server())
Затем ocamlbuild -use-ocamlfind webserver.native
вызывает следующую ошибку:
Error: Unbound record field callback
Command exited with code 2.
Если изменить к: Server.create { callback; conn_closed }
он также будет t rigger:
Error: Unbound record field callback
Command exited with code 2.
Я не уверен, как это решить, поэтому заранее заблаговременно заглядываем в это.
Это делает! Спасибо за очень подробный ответ. –