Я натрапив на це питання, шукаючи однакову функціональність.
@Jonathan Ong в коментарі вище згадував, що використання масивів для шляхів застаріле, але це явно описано в Express 4, і це працює в Express 3.x. Ось приклад того, що можна спробувати:
app.get(
['/test', '/alternative', '/barcus*', '/farcus/:farcus/', '/hoop(|la|lapoo|lul)/poo'],
function ( request, response ) {
}
);
Зсередини request
об'єкта, шляхом /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"
},
Зверніть увагу на те, що відбувається з парамами: Він усвідомлює групи захоплення та парами у всіх можливих шляхах, незалежно від того, використовуються вони в поточному запиті чи ні.
Таким чином, укладання декількох шляхів через масив можна зробити легко, але побічні ефекти, можливо, непередбачувані, якщо ви сподіваєтесь вибрати щось корисне з шляху, який використовувався за допомогою парами або групи захоплення. Це, мабуть, корисніше для надмірності / згладжування, і в цьому випадку воно буде працювати дуже добре.
Редагувати: Дивіться також відповідь @ c24w нижче .
Редагувати 2: Це досить популярна відповідь. Будь ласка, майте на увазі, що ExpressJS, як і в більшості бібліотек Node.js, - це свято, яке рухається. Хоча маршрутизація вище все ще працює (я зараз її використовую, дуже зручна функція), я не можу поручитися за вихід об'єкта запиту (він, безумовно, відрізняється від того, що я описав). Перевірте уважно, щоб отримати бажані результати.