同じ機能を探している間、私はこの質問に出くわしました。
@Jonathan Ongは、パスの配列を使用することは推奨されていませんが、Express 4で明示的に説明されており、Express 3.xで動作します。 request
オブジェクトの内側から
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function (request, response) {
}
);
、/hooplul/poo?bandle=froo&bandle=pee&bof=blarg
のパスに:のparamsで何が起こるか
"route": {
"keys": [
{
"optional": false,
"name": "farcus"
}
],
"callbacks": [
null
],
"params": [
null,
null,
"lul"
],
"regexp": {},
"path": [
"/test",
"/alternative",
"/barcus*",
"/farcus/:farcus/",
"/hoop(|la|lapoo|lul)/poo"
],
"method": "get"
},
注:ここでは何かの例は、試してみますこれは、キャプチャグループとのparamsで認識しています現在の要求で使用されているかどうかにかかわらず、すべての可能なパス
アレイ経由で複数のパスを積み重ねるのは簡単ですが、paramsやキャプチャグループで使用されたパスから有用なものを探したい場合は、副作用が予測できない可能性があります。おそらく、冗長性/エイリアシングの方がより役に立ちます。この場合、非常にうまくいくでしょう。
編集:@ c24wの回答belowもご覧ください。
編集2:これは適度に一般的な回答です。 ExpressJSは、ほとんどのNode.jsライブラリと同様に、可動式のものです。上記のルーティングはまだ機能していますが(私は現時点で非常に便利な機能です)、要求オブジェクトの出力を保証することはできません(これは私が記述したものとはまったく異なります)。希望の結果が得られるように慎重にテストしてください。
あなたが望むすべてのルートと一致します正規表現を記述することができるはずですtodoにルーティングし、正規表現をエンドポイントとして使用します。それは厄介に見えることがありますが、それは動作します。私は正式な表現が何であるかわからないので、これを答えとして掲示するつもりはありません。そして、これはその方向へのより多くのプッシュです。ここでは正規表現を使って言及しています:http://expressjs.com/api.html#app.VERB –
JSの正規表現では経験がありません。オプションは大歓迎! –
私はあまりお持ちではありませんが、正直なところ私はあなたにそれをあげていませんでしたが、私の理解では正規表現はかなり普遍的です。 Expressは他の言語とほとんど同じように式を解析する必要があります。 –