快速js中的多级路由
我在Express中开发简单的CMS应用程序。管理员可以像这样配置他的路由:
domain / f1 / f2 / f3 / f4 / page1(将呈现page1视图)
domain / n1 / n2 / page2(将呈现page2视图)
所以基本上,据我所知,我不能使用静态控制器。
我应该使用router.get *来捕获所有路由(然后转到db来获取我要渲染的视图)?这种动态路由的正确和最佳实践方法是什么?
提前致谢
回答如下:您可以使用星号来匹配以page1
结尾的任何路线,然后渲染相应的视图:
// match routes that ends with 'page1'
app.get('/*/page1', function (req, res) {
res.render('page1');
});
或者您可以将路由处理程序设置为变量,然后使用它来处理多个路径:
// create page1 route handler
var hadnlePage1 = function (req, res) {
res.render('page1');
}
app.get('/definePage1Route/:route', function (req, res) {
// GET /definePage1Route/f1%2Ff2%2Ff3%2Ff4%2Fpage1
// req.param.route => /f1/f2/f3/f4/page1
app.get(req.params.route, handlePage1);
res.end('done');
});