繁体   English   中英

活动ExpressJS路线的更改视图— Node.JS

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM