同じ機能を探しているときに、この質問に出くわしました。
@Jonathan Ong は上記のコメントで、パスに配列を使用することは推奨されていませんが、Express 4 では明示的に説明されており、Express 3.x では機能すると述べています。試してみる例を次に示します。
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
オブジェクトの内部から、次request
のパスで/hooplul/poo?bandle=froo&bandle=pee&bof=blarg
:
"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 の回答も参照してください。
編集 2: これは適度に人気のある回答です。ほとんどの Node.js ライブラリと同様に、ExpressJS は移動可能な饗宴であることに注意してください。上記のルーティングはまだ機能しますが (私は現在これを使用していますが、非常に便利な機能です)、リクエスト オブジェクトの出力を保証することはできません (これは私が説明したものとは明らかに異なります)。目的の結果が得られるように、慎重にテストしてください。