如何使用 Express 处理 URL 参数和查询参数?

推荐答案

在 Express 中,可以通过 req.paramsreq.query 来分别处理 URL 参数和查询参数。

处理 URL 参数

URL 参数通常用于 RESTful API 中,表示资源的唯一标识符。例如,/users/:id 中的 :id 就是一个 URL 参数。

-- -------------------- ---- -------
----- ------- - -------------------
----- --- - ----------

--------------------- ----- ---- -- -
  ----- ------ - --------------
  -------------- --- ------------
---

---------------- -- -- -
  ------------------- -- ------- -- ---- -------
---

处理查询参数

查询参数通常用于过滤、排序或分页等操作。例如,/users?name=John&age=30 中的 nameage 就是查询参数。

-- -------------------- ---- -------
----- ------- - -------------------
----- --- - ----------

----------------- ----- ---- -- -
  ----- ---- - ---------------
  ----- --- - --------------
  --------------- -------- ---- ---------
---

---------------- -- -- -
  ------------------- -- ------- -- ---- -------
---

本题详细解读

URL 参数

URL 参数是路径的一部分,通常用于标识特定的资源。在 Express 中,URL 参数可以通过 req.params 对象来访问。req.params 是一个包含 URL 参数的对象,键是参数名,值是参数的实际值。

例如,对于路由 /users/:id,如果请求的 URL 是 /users/123,那么 req.params.id 的值就是 123

查询参数

查询参数是 URL 中 ? 后面的部分,通常用于传递额外的信息。在 Express 中,查询参数可以通过 req.query 对象来访问。req.query 是一个包含查询参数的对象,键是参数名,值是参数的实际值。

例如,对于 URL /users?name=John&age=30req.query.name 的值是 Johnreq.query.age 的值是 30

区别与使用场景

  • URL 参数:通常用于标识资源,例如 /users/:id 表示获取特定 ID 的用户。
  • 查询参数:通常用于过滤、排序或分页,例如 /users?name=John&age=30 表示获取名字为 John 且年龄为 30 的用户。

注意事项

  • URL 参数和查询参数都可以通过 req.paramsreq.query 来访问,但它们的用途不同。
  • 如果 URL 参数和查询参数的名称相同,Express 会优先处理 URL 参数。
  • 查询参数的值通常是字符串类型,如果需要其他类型(如数字),需要进行类型转换。
纠错
反馈