更新:我的問題沒有準確傳達我想要達到的目標。我希望匹配/foo
,/foo/
,以及/foo/
(例如/foo/asdf/jkl
)以下的任何內容,而不是特定路徑。原來的問題如下。快遞:頂級路徑的可選尾部斜槓
我想匹配以下路徑:下面
/foo/ -> /foo
/foo/bar/ -> /foo/bar
/foo/bar/baz/ -> /foo/bar/baz
我想:
app.get('/foo/*', ...);
這
/foo
/foo/bar
/foo/bar/baz
這些應該工作,太在/foo
的情況下失敗H。我知道我可以提供一個正則表達式而不是一個字符串,但這肯定是一個常見的要求,所以我很驚訝地發現模式匹配的DSL不適應它。
這會導致誤報。例如,'/ foobar'會匹配。 – davidchambers
@davidchambers不,它不會。默認情況下,Express會匹配Andrew建議的路由和'/ foo'和'/ foo /'(但沒有其他)。您可以使用[strict routing](http://expressjs.com/api.html#app-settings)選項關閉該行爲,但在您的情況下,Express的默認行爲應該可以正常工作。 – robertklep
@robertklep你說得對。我誤解了Andrew的建議,因爲'/ foo *'(它有錯誤的/ foobar匹配問題)。 '/ foo'的問題是/ foo/bar不匹配。我總結了['/ foo'和'/foo*'](http://bit.ly/10IhTRL)的問題。 – davidchambers