我正在Express中开发简单 CMS应用程序。
管理员可以这样配置他的路由:

domain/f1/f2/f3/f4/page1(将呈现page1 View )

domain/n1/n2/page2(将呈现page2 View )

所以基本上,据我所知我不能使用静态 Controller 。

我应该使用router.get *捕获所有路由(然后转到db以获得我要渲染的 View )吗?
这种动态路由的正确和最佳实践方法是什么?

提前致谢

最佳答案

您可以使用星号匹配以page1结尾的任何路由,然后呈现相应的 View :

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

});

关于node.js - Express JS中的多级路由,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47969489/

10-09 20:26