Если это будет код, который решает, как обрабатывать маршрутизатор, то вам, вероятно, нужен один общий c маршрут, который затем может использовать код logi c для динамического распределения обработки маршрута на основе некоторого рода динамических параметров. c lookup:
let dynamicRoutes = new Map([["golden", dog], ["persian", cat]]);
router.use("/projects/:name", (req, res, next) => {
let target = dynamicRoutes.get(req.params.name);
if (target) {
target(req, res, next);
} else {
next();
}
});
Затем вы можете добавлять / удалять элементы из структуры данных dynamicRoutes
для добавления / удаления новых динамических c маршрутов в любое время. Если у вас есть logi c, включающий поиск в базе данных, вы можете использовать его вместо map.get()
. Или, возможно, по соображениям производительности, вы не запрашиваете базу данных при каждом попадании маршрута, а скорее запрашиваете базу данных, когда что-то меняется, и обновляете структуру данных dynamicRoutes
(например, кэш), когда вы знаете, что что-то изменилось в базе данных.