Mi sono imbattuto in questa domanda mentre cercavo la stessa funzionalità.
@Jonathan Ong ha menzionato in un commento sopra che l'uso di array per i percorsi è deprecato ma è esplicitamente descritto in Express 4 e funziona in Express 3.x. Ecco un esempio di qualcosa da provare:
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
Dall'interno request
dell'oggetto, con un percorso di /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"
},
Nota cosa succede con params: è a conoscenza dei gruppi di cattura e dei parametri in tutti i percorsi possibili, indipendentemente dal fatto che siano usati o meno nella richiesta corrente.
Quindi impilare più percorsi tramite un array può essere fatto facilmente, ma gli effetti collaterali sono forse imprevedibili se si spera di raccogliere qualcosa di utile dal percorso che è stato utilizzato tramite parametri o gruppi di acquisizione. Probabilmente è più utile per ridondanza / aliasing, nel qual caso funzionerà molto bene.
Modifica: vedi anche la risposta di @ c24w di seguito .
Modifica 2: questa è una risposta moderatamente popolare. Tieni presente che ExpressJS, come la maggior parte delle librerie Node.js, è una festa mobile. Sebbene il routing sopra funzioni ancora (lo sto usando al momento, una funzionalità molto utile), non posso garantire l'output dell'oggetto richiesta (è certamente diverso da quello che ho descritto). Si prega di testare attentamente per assicurarsi di ottenere i risultati desiderati.