请解释如何使用 Express 的 req 和 res 对象?它们分别代表什么?

推荐答案

在 Express 中,reqres 是两个非常重要的对象,分别代表 HTTP 请求和 HTTP 响应。

  • req 对象reqrequest 的缩写,表示 HTTP 请求。它包含了客户端发送的所有信息,如请求参数、请求头、请求体等。通过 req 对象,你可以访问请求的 URL、查询字符串、路径参数、请求方法(GET、POST 等)、请求头、请求体等。

  • res 对象resresponse 的缩写,表示 HTTP 响应。它用于向客户端发送响应数据。通过 res 对象,你可以设置响应状态码、响应头、发送响应体等。常见的操作包括发送 JSON 数据、重定向、设置 Cookie 等。

本题详细解读

req 对象的常用属性和方法

  1. req.params:获取路由中的路径参数。例如,对于路由 /users/:idreq.params.id 可以获取到 id 的值。
  2. req.query:获取 URL 中的查询参数。例如,对于 URL /users?name=Johnreq.query.name 将返回 "John"
  3. req.body:获取请求体中的数据,通常用于 POST 或 PUT 请求。需要配合中间件如 express.json()express.urlencoded() 使用。
  4. req.headers:获取请求头信息。
  5. req.method:获取请求的 HTTP 方法(如 GET、POST 等)。

res 对象的常用属性和方法

  1. res.status(code):设置响应的状态码。例如,res.status(200) 表示成功。
  2. res.send(body):发送响应体。可以发送字符串、对象、数组等。
  3. res.json(body):发送 JSON 格式的响应体。
  4. res.redirect(status, url):重定向到指定的 URL。例如,res.redirect('/home') 将客户端重定向到 /home
  5. res.setHeader(name, value):设置响应头。例如,res.setHeader('Content-Type', 'application/json')
  6. res.cookie(name, value, options):设置 Cookie。

示例代码

-- -------------------- ---- -------
----- ------- - -------------------
----- --- - ----------

------------------------ -- ---- ---- ------

--------------------- ----- ---- -- -
  ----- ------ - -------------- -- ------
  ----- --------- - --------------- -- ------
  ---------- ------- --------- --- -- -- ---- --
---

------------------ ----- ---- -- -
  ----- -------- - --------- -- ---------
  -------------------------- ---------- -- ---------
---

---------------- -- -- -
  ------------------- -- ------- -- ---- -------
---

在这个示例中,req 对象用于获取请求的路径参数、查询参数和请求体数据,而 res 对象用于发送响应数据和设置状态码。

纠错
反馈