怎么能在雅司病中做路由?就像在ASP.NET MVC或Rails中路由一样。
当然,Erlang是一种功能性语言,没有oo世界的概念;但是有人可以通过http:// [domain]。[com] / controller / action / arg1 / arg2 /作为对具有'action / 2'功能的名为'controller'的模块的GET请求(或者已经存在这样的LIB)。
答案 0 :(得分:4)
Yaws提供了几种方法:
appmod
为shown in this answer,但正如提示中的问题一样,此方法不允许您删除网址上的“.yaws”后缀.yaws
页面的处理,所以只有当你真的真的知道你正在做什么时才使用它。在这3个选项中,我认为重写模块是解决这一特定问题的最佳模块。
答案 1 :(得分:0)
我不知道是否有这样的模块,但我没有看到这样做的模块的好处:
out(Arg) ->
Uri = yaws_api:request_url(Arg),
Path = string:tokens(Uri#url.path, "/"),
Method = (Arg#arg.req)#http_request.method,
out(Arg, Method, Path).
out(_Arg, 'GET', [Module, Function | Args]) ->
apply(Module, Function, Args).
有一些错误处理等等。顺便说一句,如何被黑客入侵的好方法。