📅  最后修改于: 2023-12-03 15:30:41.496000             🧑  作者: Mango
在 Express.js 中,请求对象 req 上的 query 属性是一个对象,包含了当前路由的所有查询参数。这些查询参数通常是在 URL 中以查询字符串的形式出现的。
要访问查询参数,可以使用 req.query 对象来获取它们。例如,对于以下 URL:
http://localhost:3000/?name=john&age=30
可以使用以下代码访问这些查询参数:
app.get('/', function(req, res) {
const name = req.query.name; // 'john'
const age = req.query.age; // '30'
});
如果在查询参数的语法上,请求 URL 并没有完全正确,那么 req.query 将会是 undefined。
为了处理这种情况,可以使用 JavaScript 的默认参数功能:
app.get('/', function(req, res) {
const name = req.query.name || 'No name provided';
});
这将确保即使请求 URL 不附带查询参数,变量 name 的值也将被标记为 "No name provided"。
当查询参数出现参数名相同的情况时,Express.js 将会创建一个扁平对象,其中包含了所有命名相同的参数,其值会被包装成一个数组:
http://localhost:3000/?name=john&age=30&age=40
对于以上的请求 URL,可以使用以下代码访问这些查询参数:
app.get('/', function(req, res) {
const name = req.query.name; // 'john'
const age = req.query.age; // ['30', '40']
});
Express.js 的 req.query 属性让我们可以轻松地获取并操作查询参数。对于 Web 应用程序的开发人员来说,这是一个非常有用的功能。