我一直在尝试使用本来简单的路由约束
Dispatch = cowboy_router:compile([{'_',
[
{"/tokens/:tokenid",{tokenid,int}, paytoken_handler, []}
]}]),
但我一直收到相同的错误。
我的请求是curl 10.10.10.56:8080/tokens/1000 -v -H“ Content-Type:application / json”
[错误]牧场侦听器http已在退出处以cowboy_protocol:start_link / 4开始连接过程,原因为:{function_clause,[{cowboy_router,check_constraints,[{tokenid,int},[{tokenid,<>}]],[{file,” src / cowboy_router.erl“},{line,276}]},{cowboy_router,match_path,4,[{file,” src / cowboy_router.erl“}},{line ,264}]},{cowboy_router,execute,2,[{file,“ src / cowboy_router.erl”},{line,172}]},{cowboy_protocol,execute,4,[{file,“ src / cowboy_protocol。 erl“},{line,529}]}]}}
注意:当我删除约束{tokenid,int}时,它可以正常工作。
Dispatch = cowboy_router:compile([{'_',
[
{"/tokens/:tokenid", paytoken_handler, []}
]}]),
请帮忙。
谢谢。
最佳答案
编辑
看起来约束必须作为项目列表传递{"/:id/:h",[{id,int},{h,int}], toppage_handler, []}
对于您的情况,这应该工作{"/tokens/:tokenid",[{tokenid,int}], paytoken_handler, []}