【问题标题】:in express why Query strings are not part of the route path表达为什么查询字符串不是路由路径的一部分
【发布时间】:2018-06-09 02:33:41
【问题描述】:

在此处https://expressjs.com/en/guide/routing.html 的快速文档中,它说查询字符串不是路由路径的一部分。有人可以向我解释一下吗?我知道这可能是一个显而易见的问题,但我真的不知道。提前谢谢你。

【问题讨论】:

  • 因为它们出现在 URL 末尾的问号之后...
  • 问号有什么特别之处?在 express 文档中,我看到 $ 可能是路径字符串的一部分,为什么不是问号?
  • 请参阅问题stackoverflow.com/questions/43208713/… 以获得更多说明。希望对您有所帮助!
  • 抱歉,我没听懂。我只是觉得路由路径和查询字符串的实现是不同的。但本质区别是什么?

标签: node.js express routes


【解决方案1】:

查询字符串用于将数据传递给请求,主要用于获取请求。

它们总是用 ?符号,这就是路径中不允许使用它的原因。例如,一个网站可能有一个搜索页面,您可以在其中使用关键字 /search?searchterm=somedata 进行搜索,其中搜索词是值的键,而 somedata 是值本身。

它们不包括在内,因为预计数据总是被传递到该特定路由,并且如果您想为查询中的某些内容创建不同的路由,您很可能会使用 params,路由字符串如"/xyz/:somedata" 其中somedata 可以从req.params.somedataobject 内部访问。

编辑: API 设计的最佳实践是路径参数用于识别特定资源或资源,而查询参数用于对这些资源进行排序/过滤。

我希望这是有道理的。

【讨论】:

  • 您是说它们用于不同的目的。但对我来说,我觉得他们很接近。使用它们中的任何一个,我们都可以将变量从客户端传递到服务器。有什么根本区别吗?
  • 更新以添加更多信息@Jane
猜你喜欢
  • 2021-09-03
  • 1970-01-01
  • 2017-06-26
  • 1970-01-01
  • 2011-04-06
  • 2019-09-28
  • 2013-02-22
  • 2015-04-12
  • 1970-01-01
相关资源
最近更新 更多