直接贴代码

route_helper.erl

-module(route_helper).

-export([get_routes/]).

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,cowboy_req:bing()来获取后面的url,[:c]为可选url,可以写,可以不写

最新文章

  1. [转]解决:Entity Framework + MariaDb(MySql)中文乱码
  2. BIOS MCSDK 2.0 学习笔记(一)
  3. 20169212《Linux内核原理与分析》第十一周作业
  4. CentOS 7 安装 WordPress,PHP,Nginx,MySQL(MariaDB),FTP
  5. CS001: 清理浮动的几种方法以及对应规范说明
  6. android有点纠结的小问题
  7. [AngularJS 2 实践 一]My First Angular App
  8. 面试题1 -- Java 中,怎么在格式化的日期中显示时区?
  9. 安装STS报错(一)
  10. 32 ArcToolBox学习系列之数据管理工具箱——属性域(Domains)的两种创建及使用方式
  11. Dynamics 365 Online-Security Updates On TLS 1.2
  12. ARM汇编指令格式
  13. 2018年12月份GitHub上最热门的Java开源项目
  14. HTTP1.1协议-RFC2616-中文版
  15. activity window view 关系
  16. linux常用命令:pwd 命令
  17. 虚拟机ubuntu新增挂载点进行磁盘扩展
  18. c/c++基础 const
  19. Spring依赖包
  20. S11 day 97 -98天 Luffycity项目

热门文章

  1. 004PHP基础知识——数据类型(一)
  2. MYSQL-实现分组排序 对比 ORACLE 和SQLserver用 row_number() over(partition by ) 分组排序功能
  3. 【zznu-2093】毁掉这颗二叉树
  4. 【html5】hashchange Event – 监测URL的hash变化
  5. C++11_ Variadic Templates
  6. Linux0.11信号处理详解
  7. Android 框架学习3:从 EventBus 中学到的精华
  8. OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(下)
  9. Linux基础三(正则表达式)
  10. (android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图