推荐答案
在 Express 中,可以通过 req.query 对象来访问查询参数。查询参数是 URL 中 ? 后面的部分,通常以键值对的形式出现,例如 ?name=John&age=30。
// www.javascriptcn.com code example
const express = require('express');
const app = express();
app.get('/search', (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');
});在这个例子中,如果你访问 /search?name=John&age=30,req.query 将会是一个包含 name 和 age 的对象:
{
"name": "John",
"age": "30"
}本题详细解读
1. 查询参数的基本概念
查询参数是 URL 的一部分,通常用于向服务器传递额外的信息。它们出现在 URL 的 ? 后面,并以 key=value 的形式出现,多个参数之间用 & 分隔。
例如,在 URL http://example.com/search?name=John&age=30 中,查询参数是 name=John 和 age=30。
2. Express 中的 req.query
在 Express 中,req.query 是一个对象,包含了 URL 中的查询参数。Express 会自动解析查询参数并将其转换为一个对象。
例如,对于 URL /search?name=John&age=30,req.query 将会是:
{
"name": "John",
"age": "30"
}3. 使用 req.query 的示例
以下是一个简单的 Express 路由示例,展示了如何使用 req.query 来获取查询参数:
app.get('/search', (req, res) => {
const name = req.query.name;
const age = req.query.age;
res.send(`Name: ${name}, Age: ${age}`);
});在这个示例中,如果你访问 /search?name=John&age=30,服务器将返回 Name: John, Age: 30。
4. 处理缺失的查询参数
如果某个查询参数在 URL 中不存在,req.query 中对应的值将会是 undefined。因此,在使用查询参数之前,最好先检查它们是否存在。
app.get('/search', (req, res) => {
const name = req.query.name || 'Unknown';
const age = req.query.age || 'Unknown';
res.send(`Name: ${name}, Age: ${age}`);
});在这个示例中,如果 name 或 age 参数不存在,服务器将返回 Unknown 作为默认值。
5. 处理多个查询参数
如果 URL 中有多个查询参数,req.query 将会包含所有这些参数。你可以通过 req.query 对象来访问它们。
app.get('/search', (req, res) => {
const queryParams = req.query;
res.json(queryParams);
});在这个示例中,如果你访问 /search?name=John&age=30&city=NewYork,服务器将返回一个包含所有查询参数的 JSON 对象:
{
"name": "John",
"age": "30",
"city": "NewYork"
}