2016-08-02 4 views
0

私は奇妙に聞こえるかもしれない問題に直面しましたが、多くの人が対処しなければなりません。URLパスの読み方が誤っています

routes.jsファイルに2つのルートが定義されています。

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'を渡したい場合は、それが不正な動作になる、これは次のようになります私が望んでいない機能を制限するようなものです。 –

関連する問題