Ruby on rails Erlang是否有Sinatra风格的web框架?
我用Ruby和Rails编程了很长一段时间,然后我爱上了Sinatra框架的简单性,它允许我构建一页web应用程序Ruby on rails Erlang是否有Sinatra风格的web框架?,ruby-on-rails,frameworks,erlang,sinatra,Ruby On Rails,Frameworks,Erlang,Sinatra,我用Ruby和Rails编程了很长一段时间,然后我爱上了Sinatra框架的简单性,它允许我构建一页web应用程序 Erlang是否有类似Sinatra的web框架?我试过Erlyweb,但它似乎太重了。你可能对生锈的Klophaus框架感兴趣。它非常轻量级,非常适合于真正动态的单页网站。您可以通过mochiweb实现一些最低限度的功能: start() -> mochiweb_http:start([{'ip', "127.0.0.1"}, {port, 6500},
Erlang是否有类似Sinatra的web框架?我试过Erlyweb,但它似乎太重了。你可能对生锈的Klophaus框架感兴趣。它非常轻量级,非常适合于真正动态的单页网站。您可以通过mochiweb实现一些最低限度的功能:
start() ->
mochiweb_http:start([{'ip', "127.0.0.1"}, {port, 6500},
{'loop', fun ?MODULE:loop/1}]).
% mochiweb will call loop function for each request
loop(Req) ->
RawPath = Req:get(raw_path),
{Path, _, _} = mochiweb_util:urlsplit_path(RawPath), % get request path
case Path of % respond based on path
"/" -> respond(Req, <<"<p>Hello World!</p>">>);
"/a" -> respond(Req, <<"<p>Page a</p>">>);
...
_ -> respond(Req, <<"<p>Page not found!</p>">>)
end.
respond(Req, Content) ->
Req:respond({200, [{<<"Content-Type">>, <<"text/html">>}], Content}).
start()->
mochiweb_http:start([{'ip',“127.0.0.1”},{port,6500},
{'loop',fun?模块:loop/1}])。
%mochiweb将为每个请求调用循环函数
循环(请求)->
RawPath=Req:get(原始路径),
{Path,{,}=mochiweb\u util:urlspit\u Path(RawPath),%get请求路径
%的案例路径基于路径响应
“/”->响应(请求,>);
“/a”->响应(请求,>);
...
_->响应(请求,>)
结束。
响应(请求、内容)->
请求:响应({200,[{,}],Content})。
如果需要高级路由,则必须使用正则表达式而不是简单的case语句。可能是使用misultin的示例(请参见REST支持),看起来像sinatra:
-模块(我的应用程序)。
-导出([start/0,handle/3])。
开始()->
公理:启动(?模块)。
句柄('GET',[],\u请求)->
.
这将处理GET/hi
并返回Hello World代码>
有关其功能的文档,请参阅。Hi。是的,我看过氮,但它仍然很重,看起来更像成熟的Rails,甚至需要首先安装Yaws、INet或Mochiweb。我正在寻找的东西,允许我只提供基本的HTML(无需Ajax),并可以在几行为我提供一个应用程序和路由能力。Sinatra允许您从一个文件中提供任何URL,据我所知(如果我错了,请纠正我),但Non对此没有支持,或者至少我在web上的文档中找不到。太棒了,这正是我需要的答案。谢谢!:)像这样使用WebSocket的东西?
-module(my_app).
-export([start/0, handle/3]).
start() ->
axiom:start(?MODULE).
handle('GET', [<<"hi">>], _Request) ->
<<"Hello world!">>.