ExpressJS的路线正则expression式

我有路线:

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

它工作正常,但我需要跳过robot.txt和其他(人类….)我创build正则expression式(只有字符或数字):

 /^[az]{0,10}$/ 

我如何才能路由符合这个正则expression式?

如果您想要避免与实际存在的静态文件相匹配的路由,只需在调用app.router之前放置static中间件app.router

然后,将传递静态文件(如robots.txt),这些调用将不会通过您的路由。

问题解决了 ;-)。

把正则expression式放在这样的括号里:

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

在内部,你给Express路由器的string无论如何都只是被转换成正则expression式。 如果你看看代码 ,你可以看到,你可以直接传递一个正则expression式。

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

文档也有例子。

如果你需要多条路线:

 app.routes.get 

是一个包含所有获取路由的数组。 您可以更改需要更改的路由的正则expression式对象。