返回

Express 中的 Request 参数:有效构建 API 后端的秘密武器

前端

  1. 初识 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 中,nameage 是查询字符串参数:

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 服务的理想选择。