express.js Routen Erklärung

8

Ich habe mir angeschaut , um herauszufinden, wie die benannten Routenparameter req.params -Eigenschaften zugeordnet werden.

Für diejenigen, die es nicht wissen, können Sie in express.js Routen mit benannten Parametern definieren, sie optional machen, nur solche mit einem bestimmten Format (und mehr) zulassen:

%Vor%

Ich erkannte, dass das Herz dieser Funktionalität eine Methode namens pathRegexp() definiert in lib / utils.js . Die Methodendefinition ist wie folgt:

%Vor%

Der wichtige Teil ist die Regex in Zeile 7, /(\/)?(\.)?:(\w+)(?:(\(.*?\)))?(\?)?(\*)?/g , die die übereinstimmenden Teile des Pfadnamens auf diese Weise gruppiert:

Schrägstrich das / -Symbol

Format Ich weiß nicht, was der Zweck dieses hier ist, Erklärung benötigt.

Schlüssel das Wort (zB \w+ ) nach dem : -Symbol

erfassen ein Regex vor dem key . Sollte in Klammern eingeschlossen sein (zB (.\d+) )

optional das Symbol% ​​co_de% nach dem ?

Stern das key -Symbol

und der Callback-Handler erstellt eine Regex aus den obigen Gruppen.

Jetzt ist die Frage , was ist der Zweck von * hier?

Mein Verständnis nach folgender Zeile:

%Vor%

und die erwähnte Regex ist,

Wenn Sie ein Symbol% ​​co_de% nach der Gruppe format einfügen und keine Übereinstimmungsbedingung angeben (die Regex wird in Klammern nach . eingeschlossen), stimmt die generierte Regex mit dem Rest von slash überein Ruft ein key oder path Symbol auf.

Also, was ist der Sinn?

Ich frage das, weil:

  1. Ich möchte diese Methode in meiner App extrahieren und verwenden und möchte vor der Verwendung vollständig verstehen, wie sie funktioniert.
  2. Ich habe in der express.js Dokumentation nichts darüber gefunden.
  3. Ich bin nur neugierig:)
fardjad 09.03.2013, 21:27
quelle

1 Antwort

5

Es ist für passende Dateierweiterungen und solche richtig.

Betrachte den Pfad '/path/:file.:ext' und betrachte den Unterschied zwischen den Ausdrücken:

%Vor%

Im ersten Fall haben Sie am Ende params als

%Vor%

Aber ohne die Formatüberprüfung enden Sie damit:

%Vor%     
loganfsmyth 10.03.2013, 01:22
quelle

Tags und Links