2015-10-15 77 views
0

我不能得到这个匹配:无法获得兴亚,路由器路由到匹配

/people/locationId:12345 

通知是,冒号是在右侧而不是左侧,你在KOA路由器看文档。如果它在左侧是一个命名参数,可以让任何事情进来。我试图让它在右侧的原因是因为我喜欢允许呼叫者在uri中指定过滤标准的约定。这是我见过的在各种API中使用的约定。

这里是我的尝试,我的路由定义,不知道还有什么尝试,没有这些尝试的创造,我的路由工作:

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

它不符合这一点,但仅仅是因为这条路线的方式是,所有这一切都能够带来真正的价值。

'/人/:locationId?':{到: '人#发现'}

我不能使用尤其是当我有其他的途径定义,如:

“/人/ :ID“:{到:‘人#findById’}

,因为它会触及这条路线,这是不正确的路线。

+0

但为什么使用冒号分隔过滤条件? '/ people/locationId/12345'可以很容易地匹配。 –

回答

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'