我一直在尝试使用本来简单的路由约束

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, []}

08-25 18:32