Я хочу реализовать маршрутизацию на основе событий в моем бэкэнд-сервисе. Идея состоит в том, что если вызывается маршрут типа «GET / items /: id», событие запускается с путем маршрута, объектом запроса и ответа, так что моя система маршрутизации может направить вызов соответствующему обработчику запроса.
Я строю простой маппер, который отображает путь маршрута в функцию-обработчик, такую как
{ "GET /items/": handlerFunc }
Это работает хорошо, когда я не использую параметры запроса, но не подходит для маршрутов, которые используют параметры. Теоретически мне пришлось бы сопоставить каждый возможный идентификатор элемента одному и тому же обработчику:
{
"GET /items/123": handlerFunc,
"GET /items/456": handlerFunc
}
что помешано.
Я хочу иметь возможность предоставить конфигурацию, такую как:
{
"GET /items": handlerFunc,
"GET /items/:id": otherHandlerFunc
}
Так что, когда такое событие, как
{
path: "GET /items/123,
req: {...},
res: {...}
}
испускается, моя система маршрутизации должна быть в состоянии вызвать otherHandlerFunc(req, res)
.
Есть ли что-то, что помогло бы мне достичь моей цели?
Может быть, что-то вроде парсера экспресс-URL, который отображает "GET / items / 123" на "GET / items /: id" ?
Или что-то встроенное в экспресс для маршрутизации на основе событий?