2016-05-31 8 views
1

私はexpressjsの初心者であり、expressjsのルーティングとそのような概念についてはあまり知らない。それについて読んでいる間、私は1つは、paramは、ルートのparam変数など、すべてのそのような取得のリクエストになります"/:param"と "/ param"の2つの経路を区別する方法

route1 = app.get("/:param",callback) 

のような経路を設定することを見た:「/ foo」というか「/ bar」をそのルートに対応します。

私の質問です:私はルートを持つことができ、今もしそうならそれは

route2 = app.get("/param", callback) 

または

app.get("/anyOtherRoute",callback) 

で、どのように私は(要求がroute1のためではなくroute2のためであることを知ることができますか逆に)?

答えて

5

本当にありません。しかし、anyOtherRouteの行動が異なるような順序で経路を定義することができます。例えば

next()を呼び出さずに、要求を終了し

app.get('/anyOtherRoute', doFoo); app.get('/:param', doBar);

doFoo場合は、私はあなたが探していると思うの分離を取得します。

doFooが最初に呼び出されます。これは、expressが定義され、アプリに追加された順番でルートを通過するためです。

+1

具体的には、エクスプレスルートがトップダウンで評価されていますが、これは少し曖昧なので「あなたのルートをこのような順序で定義する」代わりに答えを更新します。 – peteb

+0

ああありがとう!!私は本当に基本的なものを忘れていた....:D :) – RvG

関連する問題