2015-06-04 25 views
0

我有以下路由。表示類似的路由混合

1)事件

app.get("/admin/events/:id", function(request, response, next) { 

,我也希望有

2)事件

app.get("/admin/events/days", function(request, response, next) { 

當我打電話的天名單的細節,第一個就可以得到因爲它將GET /admin/events/days解釋爲/admin/events/:id

I試圖使用REST約定,因爲通過設計事件包含日期(日期等)

請爲上述情況提供解決方案和休息命名約定。

+0

@Lutz號角可能的答案,請 – user2727195

回答

1

如果你想保留的命名規則,你可以這樣做:

app.get("/admin/events/:id", function(request, response, next) { 
    if (req.params.id === "days") { 
     next(); 
    } else { 
     ... 
    } 
); 

app.get("/admin/events/days" ... 
+0

我在表達一個新手,什麼是在這種情況下,未來的意義,第二個路由執行是'app.get(「/ admin/events/days」......' – user2727195

+0

據我所知,next()方法在調用時通過路由將下一個請求放入鏈中的下一個請求。更多信息可以在這裏找到(http://expressjs.com/api.html#app.METHOD) – Rho

+0

第二條路線的省略號僅僅表示它將繼續向前,並且具有自己的回調函數,比如一個在/ admin/events /:id中 – Rho