所以这个Opa的事情正在好转 我正在启动这样的服务器:
function resource request_dispatch(Uri.relative p_url,
p_log_fun) {
//type Uri.relative = {list(string) path, list((string,string)) query }
match (p_url) {
case {path: [] ... } : get_standard_page(p_log_fun);
case {path: ["_rest_" | path] ...}: api_request_handler(path,p_log_fun);
case {~path ...} : Resource.page("Regular",<div>standard page</div>);
}
}
function start_server(p_log_fun) {
function resource dispatch_handler_fun(Uri.relative p_url) {
request_dispatch(p_url,p_log_fun)
}
Server.start(Server.http,
{ title : "Hello, world",
dispatch:dispatch_handler_fun})
}
但是我得到了:
错误:文件“src / posts_viewer.opa”,第71行,字符3-150, (71:3-74:42 | 2466-2613)
输入冲突
(72:10-74:41){dispatch:(Uri.relative - &gt; resource); title:string} /
“C.A
(71:3-71:8)Server.handler
函数的第二个参数应为类型
{dispatch:(Uri.relative - &gt; resource); title:string} / “C.A
而不是 Server.handler
所以它显然dispatch_handler_fun的类型签名不正确。 在API文档中,我可以在变体中看到Server.handler http://doc.opalang.org/type/stdlib.core.web.server/Server/handler
是否有人清楚为什么dispatch_handler_fun不合适? PS。抱歉造成错误的代码格式化:)
谢谢
答案 0 :(得分:2)
变体类型{title, dispatch}
中没有Server.handler
,只有{string title,
(→ xhtml) page}
和{ (Uri.relative → resource) dispatch }
(没有标题字段)。
原因标题与page
相关联,而不是dispatch
,page
只返回xhtml
正文,而不包含HTML标题。服务器需要一些额外的数据作为页面的标题。您使用的dispatch
函数返回附加了一些额外数据的资源,无需将其提供给服务器两次。您已经在示例中使用了函数Resource.page()
,它将标题作为第一个参数。