我目前正在研究Rascal的稳定版本,我想生成Rascal网络服务器来使用javascript函数来提供我的html模板。
查看Webserver模块,我无法看到如何使用serve函数来使用Web服务器。它要求一个位置(我假设该位置类似于|http://localhost:8080|
)和一个类型为Response (Request)
的回调但该类型是什么?我不知道如何创建这种类型以及它究竟是什么类型。
答案 0 :(得分:2)
如果没有关于此模块的文档,您所能做的就是阅读源代码。在Eclipse浏览器中,可以访问库(由小jar图标表示),您可以在util::Webserver
找到Response
和Request
类型的定义。
基本上Request
是一个回调函数,所有HTTP头和东西都作为参数,Response
是一个包含备用响应类型(文件,字符串等)的包装器。
请注意,当前版本与您使用的稳定版本有很大不同,因此在github上阅读代码无济于事。
答案 1 :(得分:2)
类型
Response (Request) callback是一个函数,例如:
Response (Request r) { return response(...); }
这个函数是一个匿名函数(它没有名称),你可以将它作为参数传递给serve函数,你也可以将它定义为带有名称的普通函数,只需将该函数的名称作为参数。
所以这可能有用:
serve(|http://localhost:8080|, Response (Request r){ return response("Hello world"); }):
由于Webserver.rsc中有工厂方法
Response response(str content),因此会从字符串参数中为您创建响应。