我想要实现一个小cms只是为了它的乐趣,而我喜欢的是用户能够从cms创建网站和页面。
例如,会有一些表格要求用户提供"网站"名称,在该站点下,用户将能够创建n级深度的站点树,该树将保存在数据库中。
ex:" blah / article"," blah / blah / blah / article"。
我的问题是如何在expressjs中实现这样的路由? 如何根据用户创建的内容和每个站点动态声明我的路由?
例如,如果我有2个站点:site1和site2。
本地主机:3000 / SITE1 / somepathhere /嗒嗒/等等
本地主机:3000 /站点2 / someotherpathhere /嗒嗒/等等/等等
我希望每个站点的路由都是动态的(不知道用户将创建什么),我希望每个站点路由仅应用于该站点,而不是全局。
到目前为止,我一直在玩一些代码,但我不确定是否有更好的方法来实现这一目标。
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>");
});
答案 0 :(得分:0)
表达路由,本质上是用字符串播放(解析和分析)。你可以实现一个url解析器,它将获取你从数据库中读取的路由。