如何在 Express.js 中验证 API 请求

阅读时长 4 分钟读完

简介

在开发 Web 应用程序时,验证 API 请求是非常重要的一步。验证 API 请求有助于保护应用程序免受不受欢迎的客户端以及防止恶意攻击。在本文中,我们将介绍如何使用 Express.js 中间件验证 API 请求。

设置

首先,我们需要使用 npm 安装所需的 Express.js 库:

验证 API 请求

为了验证 API 请求,我们需要编写一个 Express.js 中间件,并将其放置在请求处理管道的开头。中间件是一种让请求经过一些处理后再把请求传递给其他请求处理程序的方法。在本例中,我们使用 express-validator 库来验证 API 的请求参数,然后通过检查错误对象来判断请求是否合法。

使用 express-validator 库

首先,我们需要安装 express-validator 库:

然后,我们可以通过以下代码片段,创建一个名为 validate 的中间件函数,该函数使用 express-validator 库内置的 check 函数来验证请求参数:

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

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

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

在这个例子中,validate 函数是一个中间件函数,它接收请求对象 req 和响应对象 res,以及一个 next 函数。使用 validate 函数的第一步是调用 validationResult 方法,该方法使用 express-validator 库内置的 check 函数来验证请求参数。如果验证通过,则执行下一步通过 next() 函数传递请求。否则,将产生一个错误数组,该数组将被映射到提取错误数组中,并作为 JSON 结构的响应返回。这个 JSON 结构描述了发生了什么错误。

例如:

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

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

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

在这个例子中,我们使用 check 函数指定 email 和 password 的验证条件,然后将 validate 中间件添加到处理管道中。在多个验证步骤中,validate 中间件可以在最后一个 Express.js 处理程序之前执行。

结论

在本文中,我们介绍了如何使用 Express.js 中间件来验证请求的 API。我们创建一个名为 validate 的中间件,使用 express-validator 库验证请求,并根据结果返回错误。这种方法可用于保护 Web 应用程序免受恶意客户端的攻击,以及防止恶意请求。

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

纠错
反馈