Ich verwende Express, um eine Route im Format /articles/:year/:month/:day
zu bearbeiten, wobei Jahr, Monat und Tag optional sind.
Meine Frage ist, wie mache ich sie optional? Mit der aktuellen Route, die ich definiert habe, können alle drei Parameter nicht aufgelöst werden und werden in die Standardroute übernommen.
Der expressjs-Leitfaden zu den Empfehlungen für das Routing:
Express verwendet
path-to-regexp
zum Anpassen der Routenpfade. Siehe die Pfad-zu-Regexp-Dokumentation für alle Möglichkeiten der Definition Routenpfade Express Route Tester ist ein praktisches Tool zum Testen von Basic Express-Routen, obwohl die Mustererkennung nicht unterstützt wird.
Grundsätzlich können Sie den Parameter ?
verwenden, um den Parameter optional zu machen.
Bearbeitet für den eigenen Zweck, die 3 verschiedenen Optionen in einer Antwort zu haben. Kredit an @ hjpotter92 für seine Regex-Antwort.
Mit URL-Parametern
Mit Regex
%Vor%Ohne Regex
%Vor%Definieren Sie die drei Pfade, die Sie unterstützen und die gleiche Funktion wiederverwenden möchten
Mit Abfrageparametern
%Vor%Die URL für diesen Endpunkt sieht folgendermaßen aus:
%Vor%