2016-08-02 63 views
0

我遇到了一個可能聽起來很奇怪但很多人必須處理的問題。誤讀網址路徑作爲參數

我在我的routes.js文件中定義了兩條路線。

ROUTE1 router.route('/atpages/:query') .get(app.oauth.authorise(), atpagesController.getAtpagesByIdOrName);

Route2到 router.route('/atpages/match') .get(app.oauth.authorise(), atpagesController.matchAtpagesByUrl);

兩種路線都應該調用控制器不同的功能,但問題是,每當我打Route2到自動ROUTE1是被調用。 我知道這個問題,它正在考慮match作爲查詢,我的問題是,我需要的路線來打不同的問題,而無需重新定義他們的端點。

我想要的是路線應該保持不變,但它們應該只對應相應的功能。

TIA。

回答

1

您可以檢查是否查詢不等於比賽在1個線控制是這樣的:

function getAtpagesByIdOrName (req, res, next) { 
    if (req.params.query == 'match') { 
     next(); 
    } 
} 
+0

但當時如果我真的想通過'match'我的查詢,就會胡作非爲,這將是像限制我不想要的功能。 –