2015-05-30 106 views
0

我想實現一個小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

表達路由,基本上是打(解析和分析)與字符串。你可以實現一個URL解析器,它將採用從數據庫中讀取的路由。