推荐答案
在 Express 中,可以通过 req.params
和 req.query
来分别处理 URL 参数和查询参数。
处理 URL 参数
URL 参数通常用于 RESTful API 中,表示资源的唯一标识符。例如,/users/:id
中的 :id
就是一个 URL 参数。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- --------------------- ----- ---- -- - ----- ------ - -------------- -------------- --- ------------ --- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
处理查询参数
查询参数通常用于过滤、排序或分页等操作。例如,/users?name=John&age=30
中的 name
和 age
就是查询参数。
-- -------------------- ---- ------- ----- ------- - ------------------- ----- --- - ---------- ----------------- ----- ---- -- - ----- ---- - --------------- ----- --- - -------------- --------------- -------- ---- --------- --- ---------------- -- -- - ------------------- -- ------- -- ---- ------- ---
本题详细解读
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=30
,req.query.name
的值是 John
,req.query.age
的值是 30
。
区别与使用场景
- URL 参数:通常用于标识资源,例如
/users/:id
表示获取特定 ID 的用户。 - 查询参数:通常用于过滤、排序或分页,例如
/users?name=John&age=30
表示获取名字为 John 且年龄为 30 的用户。
注意事项
- URL 参数和查询参数都可以通过
req.params
和req.query
来访问,但它们的用途不同。 - 如果 URL 参数和查询参数的名称相同,Express 会优先处理 URL 参数。
- 查询参数的值通常是字符串类型,如果需要其他类型(如数字),需要进行类型转换。