📜  Express.js req.query 属性(1)

📅  最后修改于: 2023-12-03 15:30:41.496000             🧑  作者: Mango

Express.js req.query 属性

在 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 应用程序的开发人员来说,这是一个非常有用的功能。