解决 Express.js 中的 POST 请求没有 body 的问题

阅读时长 4 分钟读完

在使用 Express.js 进行开发时,我们经常会遇到 POST 请求没有 body 的问题。这是因为 Express.js 默认情况下不会解析请求体,需要手动进行配置。本文将介绍如何解决此问题,同时提供示例代码以供参考。

问题描述

在使用 Express.js 进行开发时,如果我们通过 POST 请求发送数据,我们会发现在路由处理程序中无法获取到请求体。这是因为 Express.js 默认情况下不会解析请求体,需要手动进行配置。

例如,以下代码将无法获取到 POST 请求的请求体:

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

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

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

解决方法

要解决这个问题,我们需要在 Express.js 中使用 body-parser 中间件。body-parser 是一个 Node.js 中间件,用于解析 HTTP 请求体中的数据。

安装 body-parser

首先,我们需要安装 body-parser。可以使用 npm 进行安装:

使用 body-parser

安装完成后,我们需要在 Express.js 中使用 body-parser 中间件。在路由处理程序之前使用 body-parser 中间件即可解析请求体中的数据。以下是一个示例:

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

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

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

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

在上面的示例中,我们使用了 body-parser 中间件,并在路由处理程序之前调用了 app.use() 方法来使用该中间件。同时,我们使用了 bodyParser.urlencoded()bodyParser.json() 方法来分别解析表单数据和 JSON 数据。

示例代码

下面是一个完整的示例代码,用于演示如何解决 Express.js 中 POST 请求没有 body 的问题:

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

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

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

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

结论

在 Express.js 中解决 POST 请求没有 body 的问题,我们需要使用 body-parser 中间件来解析请求体中的数据。通过在路由处理程序之前使用 body-parser 中间件,我们可以轻松地获取 POST 请求中的请求体数据。

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

纠错
反馈