Ich bin auf diese Frage gestoßen, als ich nach der gleichen Funktionalität gesucht habe.
@ Jonathan Ong erwähnte in einem Kommentar oben, dass die Verwendung von Arrays für Pfade veraltet ist, aber in Express 4 explizit beschrieben wird und in Express 3.x funktioniert. Hier ist ein Beispiel für etwas, das Sie ausprobieren sollten:
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
Aus dem Inneren des request
Objekts mit einem Pfad von /hooplul/poo?bandle=froo&bandle=pee&bof=blarg
:
"route": {
"keys": [
{
"optional": false,
"name": "farcus"
}
],
"callbacks": [
null
],
"params": [
null,
null,
"lul"
],
"regexp": {},
"path": [
"/test",
"/alternative",
"/barcus*",
"/farcus/:farcus/",
"/hoop(|la|lapoo|lul)/poo"
],
"method": "get"
},
Beachten Sie, was mit Parametern passiert: Es sind die Erfassungsgruppen und Parameter in allen möglichen Pfaden bekannt, unabhängig davon, ob sie in der aktuellen Anforderung verwendet werden oder nicht.
Das Stapeln mehrerer Pfade über ein Array ist also einfach, aber die Nebenwirkungen sind möglicherweise unvorhersehbar, wenn Sie hoffen, etwas Nützliches aus dem Pfad aufzunehmen, der über Parameter oder Erfassungsgruppen verwendet wurde. Es ist wahrscheinlich nützlicher für Redundanz / Aliasing. In diesem Fall funktioniert es sehr gut.
Bearbeiten: Bitte beachten Sie auch die Antwort von @ c24w unten .
Bearbeiten 2: Dies ist eine mäßig beliebte Antwort. Bitte beachten Sie, dass ExpressJS, wie bei den meisten Node.js-Bibliotheken, ein bewegliches Fest ist. Während das obige Routing noch funktioniert (ich verwende es im Moment, eine sehr praktische Funktion), kann ich nicht für die Ausgabe des Anforderungsobjekts bürgen (es unterscheidet sich sicherlich von dem, was ich beschrieben habe). Bitte testen Sie sorgfältig, um sicherzustellen, dass Sie die gewünschten Ergebnisse erhalten.