无法让Koa-Router Route匹配

时间:2015-10-15 22:08:02

标签: node.js routes koa

我无法与之匹敌:

/people/locationId:12345

请注意,冒号位于右侧而不是左侧,正如您在koa-router docs中看到的那样。如果它在左侧是一个命名的参数,可以让任何东西进来。我尝试在右侧使用它的原因是因为我喜欢允许我的调用者在uri本身中指定过滤条件的约定。这是我见过在各种API中使用的惯例。

这是我的尝试,我的路线定义,不知道还有什么可以尝试,这些创建路线的尝试都没有为我工作:

/people/([a-z-]+)locationId:?
/people/locationId([a-z-]+):?
/people/locationId:?
/people/:locationId:?

它确实匹配了这一点,但仅仅因为这条路线的方式,它是一个能够真正取得任何价值的所有东西。

'/ people /:locationId?':{to:'person#find'}

我无法使用它,尤其是当我定义了其他路线时,例如:

'/ people /:id':{to:'person#findById'}

因为它会击中这条路线,这不是正确的路线。

1 个答案:

答案 0 :(得分:0)

/people/locationId::id
匹配
/people/locationId:12345

this.params.id然后是' 12345'

如果locationId也应该是变量,

/people/:name::id
匹配
/people/locationId:12345

这里this.params.id是' 12345'和this.params.name是' locationId'