Context
Для API, с которым я работаю, я хочу иметь возможность использовать объект маршрутизатора expressjs в нескольких файлах, которые сами экспортируют объекты маршрутизатора, таким образом, что вы можете вызывать API с помощьюбессмысленно длинный URL-адрес, такой как /entity1/id/linkedEntity1/id/linkedEntity2ToLinkedEntity1/id/...
..., вы поняли.
Проблема
Я использовал, требует, чтобы получить объекты маршрутизатора из модулей и интегрировать их в маршрутизатор с router.use(url,router)
, делая вещь рекурсивной.Однако, как вы уже догадались, использовать узел require crashes нужно так, как вам требуется во время загрузки, а не во время выполнения ...
tl; dr: ИтакВ общем, мне нужен способ найти, какой маршрут выбрать путем загрузки файлов по URL-вызову.
Пример кода текущей сбойной версии
root.js
module.exports = () => {
router.use("/entity1", require("routes/entity1")());
router.use("/entity2", require("routes/entity2")());
return router;
}
маршруты / entity1.js
module.exports = () => {
router.route('/')
// route definition
router.use("/entity2", require("routes/entity2")());
return router;
}
маршруты / entity2.js
module.exports = () => {
router.route('/')
// route definition
router.use("/entity1", require("routes/entity1")());
return router;
}