从视图列表中动态呈现ejs视图,而不需要为每个视图设置单一的路径。

问题描述 投票:1回答:1

我正在用express构建一个node应用。视图是用 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个回答
0
投票

我想出了一个满意的解决方案。

在路由器的

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)

}

© www.soinside.com 2019 - 2024. All rights reserved.