我正在用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")
}
我想出了一个满意的解决方案。
在路由器的
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)
}