在URL中模拟文件结构

时间:2015-05-28 04:32:52

标签: node.js url

我有一个存储在数据库中的层次结构的内容。我想让URL反映当前元素的路径。例如。如果我想代表一个动物数据库,我可能想要一个URL:animals.com/kingdom/phylum/class/order/family/genus,它会显示该属中的物种列表。 如何接受与匹配该格式的URL的请求,解析它并显示相应的页面?

1 个答案:

答案 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!');
});