¿Hay alguna forma de hacer esto en una sola llamada de función?
var todo = function (req, res){};
app.get("/", todo);
app.get("/blabla", todo);
app.get("/blablablabla", todo);
Algo como:
app.get("/", "/blabla", "/blablablabla", todo );
Sé que esto es un lío de sintaxis, pero solo para dar una idea de lo que me gustaría lograr, ¡una serie de rutas sería increíble!
Alguien sabe cómo hacer esto?

Respuestas:
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:
Desde el interior del
requestobjeto, con una ruta de/hooplul/poo?bandle=froo&bandle=pee&bof=blarg: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.
fuente
:varestablece elreq.paramque no usas. solo se usa en este caso para establecer la expresión regular.(bla|blabla)establece la expresión regular para que coincida, por lo que coincide con las cadenasblayblablah.?hace que toda la expresión regular sea opcional, por lo que también coincide/.fuente
/bla(bla)?también funciona, pero los parámetros posteriores no se completan correctamente (es decir,/bla(bla)?/:valueno se completanreq.params.value). ¿Alguien sabe por qué?req.params.varpero debe asegurarse de haberreqpasado a la funciónDe hecho, puede pasar una variedad de rutas , como mencionó, y funciona muy bien:
fuente
Solo para desarrollar la respuesta de Kevin , esto es de los documentos 4.x :
Tienen algunos ejemplos , que incluyen:
fuente
Fui por un:
fuente
requiera el archivo de su ruta original y defina la nueva ruta así
fuente