2016-04-04 9 views
3

Anforderung: Sie müssen alle URLs übereinstimmen, die mit /public/ Token beginnen.Regex für Express Router URL passend zum Pfad beginnend mit/public/

Was ich versucht habe: Ich habe versucht, die folgenden regulären Ausdruck alle Wege zu entsprechen, die mit/public/

RegEx beginnen: /\/public\/.*/

Wenn ich die gleiche Verwendung in regex101, sie in der Lage die Urls diejenigen beginnen mit/public/Token

Aber wenn versucht, passen die gleichen in Express Router Tester (http://forbeslindesay.github.io/express-route-tester/?_ga=1.180272292.1056934125.1459765156) seine Arbeit nicht

Kann mir jemand helfen, den Grund zu wissen, warum es nicht funktioniert !!

Beispielcode:

Meine Erwartung ist, dass alle URLs mit/public/Token Angabe über diese Route

router.route(/\/public\/.*/) 
     .get(function(req, res, result){ 
      // TODO 
     }); 

Exs gehen sollte:

https://localhost:8082/public/styles/styles.css 
https://localhost:8082/public/js/rs.css 
https://localhost:8082/public/images/qq.png 
+0

Einige, wie der Editor das falsche reg-ex zeigt, sollte es sein (/\/public\.*/) – KGopi

+0

Es scheint, dass '.' und' * 'dort als' \ .' behandelt werden und '\ * '.. sehen Sie den dort erzeugten Code in der linken unteren Ecke – rock321987

+0

versuchen Sie dies: -' \/public \/(. *) \/'oder this' (. *) \/public \/(. *) \/' – rock321987

Antwort

1

dieses note ansehen :

Express Route Tester ist ein praktisches Werkzeug zum Testen von einfachen Express-Routen, obwohl keine Mustererkennung unterstützt.

Regex kann mit der folgenden Express-Syntax verwendet werden:

app.get(/\/public\/.*/, function(req, res) { 
    res.send('/\/public\/.*/'); 
}); 
es

Allerdings scheint man einfacher Wildcard-Muster mit route.route verwenden:

router.route('/public/*') 

Wo * passt alle 0+ Zeichen .

1

Write-up von meinem Kommentar:

Während Sie Regex verwenden können, um alle URL zu entsprechen passende '/public', brauchen Sie nicht zu - Sie können nur die folgenden für die Route verwenden:

router.route('/public/*')