这两条路线在nodejs中是否相同?

时间:2016-06-17 15:15:31

标签: node.js express

Express中的路线:

/search/:company-name
/search/:category-name

我可以看到第一个请求被解雇,所以它们是相同的,但有没有办法解决这个问题而不涉及例如:

/search/company/:company-name
/search/category/:category-name

2 个答案:

答案 0 :(得分:4)

您可以使用查询而不是参数。 你的网址是:

/search?company=company-name
/search?category=category-name

您的路线是/search,您使用的是req.query而不是req.params。

就是这样,

  • 或您改变路线的解决方案,
  • 或以某种方式解析参数以确定它是公司还是类别
  • 或将您的路线更改为帖子并在帖子正文中使用键值对

答案 1 :(得分:3)

是的,它们是一样的。

路由器只看到以search/开头并以通配符结尾的路由。唯一改变的是您给该通配符的名称,这对于路由器来说无关紧要,它仍然是相同的URL。

您可以通过更改路由来解决此问题,也可以解析路由参数(通配符)并根据其值执行不同的操作。