更改Active ExpressJS Route的视图 - Node.JS

时间:2013-08-21 15:38:27

标签: javascript node.js templates express url-routing

我有一条活跃的快速路线 - 已经用模板定义了。

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'?

1 个答案:

答案 0 :(得分:0)

好的,所以我不得不想出另一种思考问题的方法。我没有手动设置每条路线,而是使用参数变量动态地完成它。

代码如下所示:

//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')
        }
    })
})

在我看来,这使代码更简洁,更容易使用。如果您有兴趣更多地了解代码,可以查看项目here(如果您看到可以改进的内容,请参与其中)。希望这可以帮助其他人!