无需使用Require()的expressjs中的动态递归URL路由

时间:2018-10-10 08:48:43

标签: node.js express recursion routing

上下文

对于我正在使用的api,我希望能够在多个文件中使用一个expressjs路由器对象,而这些文件本身会导出路由器阻塞的对象,这样您就可以使用一个长短的URL来调用API,例如{{1 }} ...,您明白了。

问题

我已经使用了require从模块中获取路由器对象,并使用/entity1/id/linkedEntity1/id/linkedEntity2ToLinkedEntity1/id/...将它们集成到路由器中,从而使该事物具有递归性。但是,正如您可能已经猜到的那样,在加载时而不是在执行时就使用了require crashs节点……

tl; dr: 因此,总的来说,我需要一种通过在URL调用中加载文件来查找要采用的路由的方法。

当前崩溃版本的代码示例

root.js

router.use(url,router)

routes / entity1.js

 module.exports = () => {    
    router.use("/entity1", require("routes/entity1")());
    router.use("/entity2", require("routes/entity2")());

    return router;
}

routes / entity2.js

module.exports = () => {    
    router.route('/')
       // route definition

    router.use("/entity2", require("routes/entity2")());

    return router;
}

0 个答案:

没有答案