我一直在尝试使用这种简单的路由约束
Dispatch = cowboy_router:compile([{'_',
[
{"/tokens/:tokenid",{tokenid,int}, paytoken_handler, []}
]}]),
但我一直得到同样的错误。
我的请求是卷曲10.10.10.56:8080/tokens/1000 -v -H“内容类型:application / json”
[错误] Ranch监听器http已经以cowboy_protocol:start_link / 4 at< 0.97.0>启动了连接过程。退出原因:{function_clause,[{cowboy_router,check_constraints,[{tokenid,int},[{tokenid,<<“1000”>>}]],[{file,“src / cowboy_router.erl” },{线,276}]},{cowboy_router,match_path,4,[{文件, “SRC / cowboy_router.erl”},{线,264}]},{cowboy_router,执行,2,[{文件,” SRC / cowboy_router.erl “},{线,172}]},{cowboy_protocol,执行,如图4所示,[{文件,” SRC / cowboy_protocol.erl“},{线,529}]}]}
注意:当我删除约束{tokenid,int}时,它可以正常工作。
Dispatch = cowboy_router:compile([{'_',
[
{"/tokens/:tokenid", paytoken_handler, []}
]}]),
请帮助。
感谢。
答案 0 :(得分:4)
编辑
看起来约束必须作为项目列表传递
{"/:id/:h",[{id,int},{h,int}], toppage_handler, []}
对于你的情况,这应该工作
{"/tokens/:tokenid",[{tokenid,int}], paytoken_handler, []}