cowboy의 루트 방식
3771 단어 BO
route_helper.erl
-module(route_helper).
-export([get_routes/0]).
get_routes() ->
[
{'_', [
%%
{ "/catch_all_handler/[...]", catch_all_handler, [] },
{ "/:aa/:bb/[:c]", test_handler, [aaa] }
]}
].
catch_all_handler에서 catch 로 처리all_handler에서 시작된 모든 url 요청
catch_all_handler.erl
-module(catch_all_handler).
-export([init/3]).
-export([handle/2]).
-export([terminate/3]).
init(_Transport, Req, []) ->
{ok, Req, undefined}.
handle(Req, State) ->
{Path,_} = cowboy_req:path(Req),
{PathList, _} = cowboy_req:path_info(Req),
lists:foreach(
fun(PathArg)->
io:format("catch_all_handler path is ~p, args ~p~n",[Path,PathArg])
end,
PathList
),
{ok, Req, State}.
terminate(_Reason, _Req, _State) ->
ok.
test_handler.erl
-module(test_handler).
-export([init/3]).
-export([handle/2]).
-export([terminate/3]).
init(_Transport, Req, [Options]) ->
io:format("options ~p~n",[Options]),
{ok, Req, undefined}.
handle(Req, State) ->
{PathInfo,_} = cowboy_req:path(Req),
{Arg1,_} = cowboy_req:binding(aa,Req),
{Arg2,_} = cowboy_req:binding(bb,Req),
io:format("test_handler path is ~p, arg1 ~p,arg2 ~p~n",[PathInfo,Arg1,Arg2]),
{ok, Req, State}.
terminate(_Reason, _Req, _State) ->
ok.
init 안에 있는 Option은 바로aaa,cowboyreq:bing()로 뒤에 있는 URL을 가져옵니다. [:c]는 선택할 수 있는 URL입니다. 쓸 수 있고 안 쓸 수 있습니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
cowboy의 루트 방식직접 부호 붙이기 route_helper.erl catch_all_handler에서 catch 로 처리all_handler에서 시작된 모든 url 요청 catch_all_handler.erl test_handler....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.