cowboy的路由方式
2024-08-28 14:46:55
直接贴代码
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,可以写,可以不写
最新文章
- [转]解决:Entity Framework + MariaDb(MySql)中文乱码
- BIOS MCSDK 2.0 学习笔记(一)
- 20169212《Linux内核原理与分析》第十一周作业
- CentOS 7 安装 WordPress,PHP,Nginx,MySQL(MariaDB),FTP
- CS001: 清理浮动的几种方法以及对应规范说明
- android有点纠结的小问题
- [AngularJS 2 实践 一]My First Angular App
- 面试题1 -- Java 中,怎么在格式化的日期中显示时区?
- 安装STS报错(一)
- 32 ArcToolBox学习系列之数据管理工具箱——属性域(Domains)的两种创建及使用方式
- Dynamics 365 Online-Security Updates On TLS 1.2
- ARM汇编指令格式
- 2018年12月份GitHub上最热门的Java开源项目
- HTTP1.1协议-RFC2616-中文版
- activity window view 关系
- linux常用命令:pwd 命令
- 虚拟机ubuntu新增挂载点进行磁盘扩展
- c/c++基础 const
- Spring依赖包
- S11 day 97 -98天 Luffycity项目
热门文章
- 004PHP基础知识——数据类型(一)
- MYSQL-实现分组排序 对比 ORACLE 和SQLserver用 row_number() over(partition by ) 分组排序功能
- 【zznu-2093】毁掉这颗二叉树
- 【html5】hashchange Event – 监测URL的hash变化
- C++11_ Variadic Templates
- Linux0.11信号处理详解
- Android 框架学习3:从 EventBus 中学到的精华
- OPEN(SAP) UI5 学习入门系列之一:扫盲与热身(下)
- Linux基础三(正则表达式)
- (android 地图实战开发)2 创建MapActivity,根据设备当前位置,显示地图