`express.json()` 和 `express.urlencoded()` 是什么?

阅读时长 4 分钟读完

express.json()express.urlencoded() 是 Express 框架中的两个内置中间件。这些中间件可以帮助我们在处理 HTTP 请求时解析请求体中包含的数据。

express.json()

express.json() 中间件用于解析 JSON 格式的请求体(body)。当客户端(例如浏览器)通过 POST、PUT 或 PATCH 请求方式发送 JSON 数据时,服务器需要使用该中间件来解析请求体并将其转换为 JavaScript 对象。

下面是一个示例代码:

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

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

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

---------------- ---------- -
  ---------------------- -- ---- --------
---
展开代码

在上面的示例中,express.json() 中间件被添加到应用程序级别的中间件堆栈中,因此每个路由处理程序都可以访问 req.body 对象。当客户端向 /users 路径发送 POST 请求,并且请求体中包含 JSON 数据时,服务器会将请求体解析为 JavaScript 对象,并将其分配给 req.body 变量。在路由处理程序中,我们可以像访问其他 JavaScript 对象一样访问 req.body 中的数据。

需要注意的是,express.json() 中间件必须在任何路由处理程序之前添加到应用程序级别的中间件堆栈中。

express.urlencoded()

express.urlencoded() 中间件用于解析 URL 编码请求体(body)。当客户端(例如浏览器)通过 POST、PUT 或 PATCH 请求方式发送 URL 编码数据时,服务器需要使用该中间件来解析请求体并将其转换为 JavaScript 对象。

下面是一个示例代码:

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

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

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

---------------- ---------- -
  ---------------------- -- ---- --------
---
展开代码

在上面的示例中,express.urlencoded() 中间件被添加到应用程序级别的中间件堆栈中,并且 extended 参数设置为 true。这意味着可以解析具有嵌套对象的编码数据。当客户端向 /users 路径发送 POST 请求,并且请求体中包含 URL 编码数据时,服务器会将请求体解析为 JavaScript 对象,并将其分配给 req.body 变量。

需要注意的是,express.urlencoded() 中间件必须在任何路由处理程序之前添加到应用程序级别的中间件堆栈中。

总结

express.json()express.urlencoded() 是 Express 框架中的两个内置中间件,它们用于解析 JSON 格式和 URL 编码格式的请求体(body)。这些中间件是处理 HTTP 请求时必不可少的工具。

在编写 Express 应用程序时,我们应该了解如何使用这些中间件,并将它们添加到应用程序级别的中间件堆栈中。这样可以确保每个路由处理程序都可以访问 req.body 中的数据。

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

纠错
反馈

纠错反馈