【问题标题】:Dynamically render ejs view from a list of views without having a single route for each of the views从视图列表中动态呈现 ejs 视图,而无需为每个视图提供单个路由
【发布时间】:2020-05-26 12:13:07
【问题描述】:

我正在使用 express 构建一个节点应用程序。视图在 EJS 中。

我有一个 EJS 视图列表。除了为这些视图中的每一个编写不同的路由之外,有没有办法只有一个动态路由“/:dynamic_route”,然后也动态渲染相应的视图?

为了清楚起见,我在这些 EJS 视图中没有/不需要任何动态内容。我只希望能够遍历它们并呈现与我要访问的 URL 匹配的那个。那么,在下面的代码中,我怎么能在 res.render 括号内做到这一点呢?

exports.viewTemplate(req, res) {
//some code to match the requested url and the corresponding view
res.render("dynamically_reference_view")
}

【问题讨论】:

    标签: javascript node.js ejs


    【解决方案1】:

    我设法想出了一个令人满意的解决方案。

    在路由器中

    router.get("/:dynamic_route", controller.viewTemplate)
    

    在控制器中

    exports.viewTemplate = function(req, res) {
    let view = req.url.slice(10) //Remove beginning of the path until only the filename of the template to be rendered is left
    
    res.render(view)
    
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-07-22
      • 2014-12-12
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多