推荐答案
在 Express 中,可以通过 req.params 和 req.query 来分别处理 URL 参数和查询参数。
处理 URL 参数
URL 参数通常用于 RESTful API 中,表示资源的唯一标识符。例如,/users/:id 中的 :id 就是一个 URL 参数。
// www.javascriptcn.com code example
const express = require('express');
const app = express();
app.get('/users/:id', (req, res) => {
const userId = req.params.id;
res.send(`User ID: ${userId}`);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});处理查询参数
查询参数通常用于过滤、排序或分页等操作。例如,/users?name=John&age=30 中的 name 和 age 就是查询参数。
// www.javascriptcn.com code example
const express = require('express');
const app = express();
app.get('/users', (req, res) => {
const name = req.query.name;
const age = req.query.age;
res.send(`Name: ${name}, Age: ${age}`);
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});本题详细解读
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 参数。
- 查询参数的值通常是字符串类型,如果需要其他类型(如数字),需要进行类型转换。