ExpressJS路由正则表达式

use*_*173 10 regex node.js express

我有路线:

app.get('/:id', routes.action);
Run Code Online (Sandbox Code Playgroud)

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

/^[a-z]{0,10}$/
Run Code Online (Sandbox Code Playgroud)

我怎么只能路由匹配这个正则表达式的id?

Joh*_*yHK 18

将正则表达式放在括号中,如下所示:

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


Gol*_*den 4

如果您想避免与物理存在的静态文件匹配的路由,只需将中间件放在staticapp.router.

然后静态文件(例如robots.txt)将被传递,并且这些呼叫将不会到达您的路由。

问题解决了 ;-)。