Natknąłem się na to pytanie, szukając tej samej funkcjonalności.
@Jonathan Ong wspomniał w powyższym komentarzu, że używanie tablic jako ścieżek jest przestarzałe, ale zostało wyraźnie opisane w Express 4 i działa w Express 3.x. Oto przykład czegoś do wypróbowania:
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
Od wewnątrz request
obiektu, ścieżką /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"
},
Zwróć uwagę, co dzieje się z parametrami: zdaje sobie sprawę z grup przechwytywania i parametrów we wszystkich możliwych ścieżkach, niezależnie od tego, czy są one używane w bieżącym żądaniu.
Tak więc układanie wielu ścieżek w macierz można łatwo wykonać, ale efekty uboczne są prawdopodobnie nieprzewidywalne, jeśli masz nadzieję, że uda ci się znaleźć coś pożytecznego ze ścieżki, która została użyta przez parametry lub grupy przechwytywania. Prawdopodobnie jest to bardziej przydatne do redundancji / aliasingu, w takim przypadku będzie działać bardzo dobrze.
Edycja: zobacz również odpowiedź @ c24w poniżej .
Edycja 2: To jest średnio popularna odpowiedź. Pamiętaj, że ExpressJS, podobnie jak większość bibliotek Node.js, to ruchoma uczta. Chociaż powyższy routing nadal działa (używam go w tej chwili, bardzo przydatna funkcja), nie mogę ręczyć za wyjście obiektu żądania (z pewnością różni się od tego, co opisałem). Przetestuj dokładnie, aby upewnić się, że uzyskasz pożądane wyniki.