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式对象。