2012-09-08 85 views
10

我的路線:ExpressJS路徑正則表達式

app.get('/:id', routes.action); 

它工作正常,但我需要跳過robot.txt等(人類....) 我創建的正則表達式(只有字符或數字):

/^[a-z]{0,10}$/ 

我如何才能路由與此正則表達式匹配的唯一標識符?

回答

4

如果您希望避免與實際存在的靜態文件相匹配的路由,只需在調用app.router之前放置static中間件即可。

然後,將傳遞靜態文件(如robots.txt),這些調用將不會通過您的路由。

問題解決;-)。

18

把正則表達式中括號是這樣的:

app.get('/:id(^[a-z]{0,10}$)', routes.action); 
2

內部,你給快遞路由器字符串只是轉換成正則表達式反正。如果你看看the code,你可以看到你可以直接傳遞一個正則表達式。

app.get(/^\/[a-z]{0,10}$/, routes.action); 

The docs也有例子。

0

如果你需要它的多條路線:

app.routes.get 

是具有所有的get路線的數組。 您可以更改需要更改的路線的正則表達式對象。