0
我有一個存儲在數據庫中的分層結構的內容。我想讓URL反映當前元素的路徑。例如。如果我想代表一個動物數據庫,我可能需要一個URL:animals.com/kingdom/phylum/class/order/family/genus,它會顯示該屬的物種列表。 如何接受對匹配該格式的URL的請求,解析它並顯示相應的頁面?模擬URL中的文件結構
我有一個存儲在數據庫中的分層結構的內容。我想讓URL反映當前元素的路徑。例如。如果我想代表一個動物數據庫,我可能需要一個URL:animals.com/kingdom/phylum/class/order/family/genus,它會顯示該屬的物種列表。 如何接受對匹配該格式的URL的請求,解析它並顯示相應的頁面?模擬URL中的文件結構
如果您想自己做而不是使用框架,可以使用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!');
});