【发布时间】:2015-10-15 22:08:02
【问题描述】:
我无法匹配:
/people/locationId:12345
注意,是的,冒号位于右侧,而不是您在 koa-router 文档中看到的左侧。如果它在左侧,那是一个允许任何东西进入的命名参数。我尝试将它放在右侧的原因是因为我喜欢允许我的调用者在 uri 本身中指定过滤条件的约定。这是我见过的各种 API 中使用的约定。
这是我的尝试,我的路线定义,不知道还能尝试什么,这些创建路线的尝试都不适合我:
/people/([a-z-]+)locationId:?
/people/locationId([a-z-]+):?
/people/locationId:?
/people/:locationId:?
它确实符合这一点,但只是因为这条路线的方式是,它是一个可以获取任何价值的所有东西。
'/people/:locationId?': { to: 'person#find' }
我不能使用它,尤其是当我定义了其他路线时,例如:
'/people/:id': { to: 'person#findById' }
因为它会撞到这条路线,这不是正确的路线。
【问题讨论】:
-
但是为什么要使用冒号来分隔过滤条件呢?
/people/locationId/12345怎么样?那真的很容易匹配。