我有一个存储在数据库中的层次结构的内容。我想让URL反映当前元素的路径。例如。如果我想代表一个动物数据库,我可能想要一个URL:animals.com/kingdom/phylum/class/order/family/genus,它会显示该属中的物种列表。 如何接受与匹配该格式的URL的请求,解析它并显示相应的页面?
答案 0 :(得分:1)
如果您想自己而不是使用框架,可以使用url.parse()
从URL中提取路径,然后使用split()
从路径元素创建数组。 / p>
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!');
});