Me encontré con esta pregunta mientras buscaba la misma funcionalidad.
@Jonathan Ong mencionó en un comentario anterior que el uso de matrices para rutas está en desuso, pero se describe explícitamente en Express 4 y funciona en Express 3.x. Aquí tienes un ejemplo de algo que puedes probar:
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
Desde el interior del request
objeto, con una ruta 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"
},
Tenga en cuenta lo que sucede con los params: conoce los grupos de captura y los params en todas las rutas posibles, se utilicen o no en la solicitud actual.
Por lo tanto, se puede apilar múltiples rutas a través de una matriz fácilmente, pero los efectos secundarios son posiblemente impredecibles si espera obtener algo útil de la ruta que se usó a través de parámetros o grupos de captura. Probablemente sea más útil para la redundancia / aliasing, en cuyo caso funcionará muy bien.
Editar: consulte también la respuesta de @ c24w a continuación .
Edición 2: esta es una respuesta moderadamente popular. Tenga en cuenta que ExpressJS, al igual que la mayoría de las bibliotecas de Node.js, es una fiesta movible. Si bien el enrutamiento anterior todavía funciona (lo estoy usando en este momento, una característica muy útil), no puedo responder por la salida del objeto de solicitud (ciertamente es diferente de lo que he descrito). Pruebe cuidadosamente para asegurarse de obtener los resultados deseados.