【发布时间】:2015-05-30 14:01:47
【问题描述】:
我想实现一个小 cms 只是为了好玩,我希望用户能够从 cms 创建站点和页面。
例如,会有一些表单要求用户输入“站点”名称,并且在该站点下,用户将能够创建一个深度为 n 级的站点树,该树将保存在数据库中。
例如:“blah/article”、“blah/blah/blah/article”。
我的问题是如何在 expressjs 中实现这样的路由? 如何根据用户创建的内容和每个站点动态声明我的路由?
例如,如果我有 2 个站点:site1 和 site2。
localhost:3000/site1/somepathhere/blah/blah
localhost:3000/site2/someotherpathhere/blah/blah/blah
我希望每个站点的路由都是动态的(不知道用户将创建什么),并且我希望每个站点路由仅应用于该站点,而不是全局应用。
到目前为止,我正在玩一些代码,但我不确定是否有更好的方法来实现这一点。
app.param('site', function(req, res, next, site) {
req.site = site;
next();
});
app.get('/:site', function(req, res) {
res.send(req.site + "<br><pre>" + JSON.stringify(req.params, null, 4) + "</pre>");
});
app.get('/:site/*', function(req, res) {
res.send(req.site + "<br><pre>" + JSON.stringify(req.params, null, 4) + "</pre>");
});
【问题讨论】:
标签: node.js express url-routing