2016-09-28 6 views
1

私は急行を使用しています。なぜ最初はいつも最初のルートに当たっています

router.get('/:id', function (req, res, next) { 

router.get('/search', function (req, res, next) { 

私は私は2番目の代わりに拳ルートを打つhttp://localhost:3000/users/[email protected]をGET呼び出すたび:

私は2つのルートがありますか?

変更する必要はありますか?

+1

あなたはその順序を変えることができるので、アプリは '/ search'が'/search'と一致しないときだけ '/:id'をチェックします。あるいは、Expressは[path-to-regexp]を使用します。これは[パラメータ付きのフォーマットを提供する](https://www.npmjs.com/package/path-to-regexp#custom-match-parameters)をサポートしています。 '/:id(\ d +)'(数値の 'id'だけが一致します)。 –

答えて

4

/:idに一致するものは/searchです。それはIDが「検索」だと思う。 '/ search'を先に入力するか、/find/:idに変更してください。

関連する問題