Я хочу настроить несколько более сложных маршрутов, которые могут включать ряд необязательных параметров.Желательно использовать именованные параметры для удобства доступа.Вот пример того, чего я пытаюсь достичь:
// The following routes should be matched based on parameters provided:
// GET /books/:category/:author
// GET /books/:category/:author/limit/:limit
// GET /books/:category/:author/skip/:skip
// GET /books/:category/:author/limit/:limit/skip/:skip
// GET /books/:category/:author/sort/:sortby
// GET /books/:category/:author/sort/:sortby/limit/:limit
// GET /books/:category/:author/sort/:sortby/skip/:skip
// GET /books/:category/:author/sort/:sortby/limit/:limit/skip/:skip
app.get('/books/:category/:author/(sort/:sortby)?/(limit/:limit)?/(skip/:skip)?', myController.index);
Как видите, я пытаюсь сгруппировать необязательные параметры с помощью (paramKey/paramValue)?
.Таким образом, я надеялся, что смогу «смешивать и сопоставлять» необязательные параметры, все еще используя именование параметров.К сожалению, это, похоже, не работает.
Есть ли способ заставить это работать без необходимости писать прямые регулярные выражения и добавлять дополнительную логику для анализа любых результирующих групп параметров на основе индекса?
По сути, я ищу простой способ парсинга пар ключ / значение из маршрута.