如何理解 Express.js 的 request 和 response 对象

阅读时长 6 分钟读完

在前端开发中,我们经常使用 Express.js 这个流行的 Node.js 框架来构建 Web 应用程序。而在 Express.js 中,request 和 response 对象是两个非常重要的对象,它们承载了很多关键的功能和信息。本文将详细介绍 Express.js 的 request 和 response 对象,帮助读者更好地理解和运用它们。

1. request 对象

request 对象代表客户端发起的 HTTP 请求。在 Express.js 中,request 对象封装了 HTTP 请求的所有信息,包括请求头部、请求参数、请求体等等。下面是一些常用的 request 对象的属性和方法:

1.1. request.params

params 属性是一个对象,它包含了所有的路由参数。例如,我们定义了一个路由:

当用户请求 /user/123 时,params 对象的值为 {id: '123'}

1.2. request.query

query 属性是一个对象,它包含了所有的查询参数。例如,当用户请求 /search?q=express&limit=10 时,query 对象的值为 {q: 'express', limit: '10'}

1.3. request.body

body 属性是一个对象,它包含了请求体的内容。在 Express.js 中,我们通常使用 body-parser 中间件来解析请求体。例如,当用户提交一个表单时,我们可以通过以下方式获取表单数据:

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

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

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

1.4. request.headers

headers 属性是一个对象,它包含了所有的请求头部。例如,当用户请求时,headers 对象的值为:

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

1.5. request.cookies

cookies 属性是一个对象,它包含了所有的 Cookie。例如,当用户请求时,cookies 对象的值为:

1.6. request.get(header)

get 方法用于获取指定的请求头部。例如,当用户请求时,req.get('User-Agent') 返回的是浏览器的 User-Agent。

2. response 对象

response 对象代表服务器端返回的 HTTP 响应。在 Express.js 中,response 对象封装了 HTTP 响应的所有信息,包括响应头部、响应内容等等。下面是一些常用的 response 对象的属性和方法:

2.1. response.send([body])

send 方法用于发送 HTTP 响应。它可以接受多种数据类型,包括字符串、数字、对象、数组等等。例如:

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

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

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

2.2. response.json([body])

json 方法用于发送 JSON 格式的 HTTP 响应。例如:

2.3. response.redirect([status,] path)

redirect 方法用于重定向到另一个 URL。例如:

2.4. response.sendFile(path[, options][, fn])

sendFile 方法用于发送文件。例如:

2.5. response.status(code)

status 方法用于设置 HTTP 状态码。例如:

3. 总结

本文介绍了 Express.js 的 request 和 response 对象,包括它们的属性和方法。希望读者能够更好地理解和运用它们,从而提高开发效率。最后,附上一段完整的示例代码:

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

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

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

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

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

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

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65865f1dd2f5e1655d0dc534

纠错
反馈