Je suis tombé sur cette question en cherchant la même fonctionnalité.
@Jonathan Ong a mentionné dans un commentaire ci-dessus que l'utilisation de tableaux pour les chemins est obsolète, mais elle est explicitement décrite dans Express 4 et fonctionne dans Express 3.x. Voici un exemple de quelque chose à essayer:
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
De l'intérieur de l' request
objet, avec un chemin de /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"
},
Notez ce qui se passe avec les paramètres: il est conscient des groupes de capture et des paramètres dans tous les chemins possibles, qu'ils soient ou non utilisés dans la requête en cours.
Ainsi, empiler plusieurs chemins via un tableau peut être fait facilement, mais les effets secondaires sont peut-être imprévisibles si vous espérez récupérer quelque chose d'utile dans le chemin utilisé par le biais de paramètres ou de groupes de capture. C'est probablement plus utile pour la redondance / aliasing, auquel cas cela fonctionnera très bien.
Edit: Veuillez également voir la réponse de @ c24w ci-dessous .
Edit 2: C'est une réponse modérément populaire. Veuillez garder à l'esprit qu'ExpressJS, comme la plupart des bibliothèques Node.js, est un festin déplaçable. Bien que le routage ci-dessus fonctionne toujours (je l'utilise pour le moment, une fonctionnalité très pratique), je ne peux pas garantir la sortie de l'objet de requête (c'est certainement différent de ce que j'ai décrit). Veuillez tester attentivement pour vous assurer d'obtenir les résultats souhaités.