2015-05-28 56 views
0

我有一個存儲在數據庫中的分層結構的內容。我想讓URL反映當前元素的路徑。例如。如果我想代表一個動物數據庫,我可能需要一個URL:animals.com/kingdom/phylum/class/order/family/genus,它會顯示該屬的物種列表。 如何接受對匹配該格式的URL的請求,解析它並顯示相應的頁面?模擬URL中的文件結構

回答

1

如果您想自己做而不是使用框架,可以使用url.parse()從url中提取路徑,然後使用split()從路徑元素創建一個數組。

var url = require('url'); 

var myUrl = "http://animals.com/kingdom/phylum/class/order/family/genus"; 
var myPath = url.parse(myUrl).path; 
var elements = myPath.substr(1).split('/'); 
console.log(elements); // [ 'kingdom', 'phylum', 'class', 'order', 'family', 'genus' ] 

你可能會考慮使用像Express這樣的框架,爲這個東西提供強大的路由選擇。例如,在Express中,您可以這樣做:

app.get('/animal/:kingdom/:phylum/:class', function (req, res, next) { 
    console.log('Kingdom: ', req.params.kingdom); 
    console.log('Phylum: ', req.params.phylum); 
    console.log('Class: ', req.params.class); 
    res.send('Hello animal, lover!'); 
});