2015-10-15 63 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'