Express 中的 Request 参数:有效构建 API 后端的秘密武器
2023-10-02 18:57:21
- 初识 Express Request 对象
Express 中的请求参数是 Express request 对象的一部分,该对象封装了有关传入请求的所有信息。通常,我们将 request 对象简称为 req。它包含以下重要属性:
req.query
:包含查询字符串参数。req.params
:包含路径参数。req.body
:包含请求体数据。req.headers
:包含 HTTP 头信息。req.method
:包含 HTTP 请求方法(例如 GET、POST 等)。req.url
:包含请求的完整 URL。
2. 从 HTTP 请求中提取查询字符串参数
查询字符串参数是通过 URL 传递给服务器的数据。例如,在以下 URL 中,name
和 age
是查询字符串参数:
https://example.com/users?name=John&age=30
在 Express 中,可以使用 req.query
对象来访问查询字符串参数。req.query
是一个包含键值对的对象,其中键是查询字符串参数的名称,值是对应的值。例如,要获取上面的示例中 name
查询字符串参数的值,可以使用以下代码:
const name = req.query.name;
3. 从 HTTP 请求中提取请求体数据
请求体数据是通过 HTTP 请求正文发送给服务器的数据。它通常用于 POST、PUT 和 DELETE 等请求方法。
在 Express 中,可以使用 req.body
对象来访问请求体数据。req.body
是一个包含键值对的对象,其中键是请求体数据的名称,值是对应的值。例如,要获取以下 JSON 请求体数据的 name
属性的值,可以使用以下代码:
{
"name": "John",
"age": 30
}
const name = req.body.name;
4. 从 HTTP 请求中提取路径参数
路径参数是通过 URL 路径传递给服务器的数据。例如,在以下 URL 中,id
是路径参数:
https://example.com/users/123
在 Express 中,可以使用 req.params
对象来访问路径参数。req.params
是一个包含键值对的对象,其中键是路径参数的名称,值是对应的值。例如,要获取上面的示例中 id
路径参数的值,可以使用以下代码:
const id = req.params.id;
5. 在 Express 中间件和路由处理程序中使用请求参数
在 Express 中间件和路由处理程序中,可以使用 req
对象来访问请求参数。这使我们可以根据请求参数来执行各种操作,例如验证请求、提取数据或构建响应。
例如,以下中间件可以用来验证请求中是否存在 name
查询字符串参数:
const express = require('express');
const app = express();
app.use((req, res, next) => {
if (!req.query.name) {
return res.status(400).send('Missing name parameter');
}
next();
});
以下路由处理程序可以用来从请求体中提取 name
属性的值:
const express = require('express');
const app = express();
app.post('/users', (req, res) => {
const name = req.body.name;
res.send(`Hello, ${name}!`);
});
总结
Express 中的 request 参数是构建 API 后端的秘密武器。它使我们能够轻松地从 HTTP 请求中提取查询字符串参数、请求体数据和路径参数。通过结合中间件和路由处理程序,我们可以根据请求参数来执行各种操作,例如验证请求、提取数据或构建响应。这使得 Express 成为构建 RESTful API 和 Web 服务的理想选择。