12

更新:私の質問は、私が達成しようとしていることを正確に伝えていませんでした。特定のパスではなく、/foo、 、および(例) の/foo/下にあるものと一致させたいと考えています。元の質問は次のとおりです。/foo//foo/asdf/jkl


次のパスに一致させたい:

/foo
/foo/bar
/foo/bar/baz

これらも機能するはずです:

/foo/          ->  /foo
/foo/bar/      ->  /foo/bar
/foo/bar/baz/  ->  /foo/bar/baz

私は次のことを試しました:

app.get('/foo/*', ...);

ただし、この場合は失敗し/fooます。文字列ではなく正規表現を提供できることはわかっていますが、これは確かに一般的な要件であるため、パターン マッチング DSL がそれに対応していないことを知って驚くでしょう。

4

6 に答える 6

8

正規表現が適しているようです:

app.get(/^[/]foo(?=$|[/])/, ...);
于 2013-05-16T16:21:27.750 に答える
5

1 つのパターンでそれらを一致させたい場合:

app.get('/foo(/bar(/baz)?)?', ...)

最後にオプションを許可するデフォルトの Express 動作が/適用されます。

編集:これはどうですか?

app.get('/foo/:dummy?*', ...)
于 2013-05-16T16:08:09.733 に答える