从数据库数据动态路由

时间:2015-05-30 14:01:48

标签: node.js express url-routing

我想要实现一个小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>");

});

1 个答案:

答案 0 :(得分:0)

表达路由,本质上是用字符串播放(解析和分析)。你可以实现一个url解析器,它将获取你从数据库中读取的路由。