0

我有一条有效的快速路线——已经用模板定义了。

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

})

现在,我希望稍后能够在应用程序中更改该路由的视图文件。我该怎么做?

基本上,我如何告诉 express '/route' 应该有一个新的 'theme-file.extension'?

4

1 回答 1

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

在我看来,这使代码更加简洁和易于使用。如果您有兴趣查看更多实际代码,可以在此处查看该项目(如果您发现可以改进的地方,请做出贡献!)。希望这对其他人有帮助!

于 2013-09-16T19:02:47.903 回答