[英]Change View of Active ExpressJS Route — Node.JS
我有一条有效的快速路线-已经使用模板进行了定义。
app.get('/route', function route(req, res) {
db.get('db_ID', function compileAndRender(err, doc) {
var stream = mu.compileAndRender('theme-file.extension', doc)
stream.pipe(res)
})
})
现在,我希望稍后可以在应用程序中更改该路由的视图文件。 我该怎么做?
基本上,我该如何告诉表达'/ route'应该有一个新的'theme-file.extension'?
好的,所以我只需要想出另一种思考问题的方式。 我没有使用手动设置每个路由,而是使用参数变量来动态地进行设置。
代码如下:
//Set up dynamic routes for all pages
app.get('/:page_name', function(req, res) {
db.get('pages_routes', function(err, doc) {
var pure_routes = doc.pure_routes,
requested_page = req.params.page_name,
page_info = _.findWhere(pure_routes, { "url" : requested_page })
if (page_info !== undefined) {
db.get(page_info.id, function compileAndRender(err, doc) {
var stream = mu.compileAndRender(page_info.theme, doc)
stream.pipe(res)
})
} else {
res.redirect('/index.html')
}
})
})
在我看来,这使代码更加简洁和易于使用。 如果您有兴趣查看更多实际使用的代码,可以在这里查看项目(如果看到可以改进的地方,请贡献力量!)。 希望这可以帮助其他人!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.