I have route:
app.get('/:id', routes.action);
It works fine, but I need skip robot.txt
and other (humans ....)
I create regex (only chars or number):
/^[a-z]{0,10}$/
How I can route only ids, which match this regex?
Put the regex in parentheses like this:
app.get('/:id(^[a-z]{0,10}$)', routes.action);
If you want to avoid a route matching a static file that exists physically, simply put the static
middleware before the call to the app.router
.
Then the static file (such as robots.txt) will be delivered and these calls will not get through to your routing.
Problem solved ;-).
Internally, the strings that you give to the Express router are just converted into regexes anyway. If you look at the code, you can see that you can just pass a regex directly.
app.get(/^\/[a-z]{0,10}$/, routes.action);
The docs also have examples.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With