npm 包 egg-property-validator 使用教程

阅读时长 5 分钟读完

在Web开发中,我们经常需要对用户输入的数据进行校验,例如某个输入框不能为空,某个表单项需要符合正则表达式等。这时候,我们可以使用 npm 包 egg-property-validator 来进行数据校验。

简介

egg-property-validator 是一款基于 property-validator 的 egg 插件,提供了针对 egg 应用程序的数据验证功能,可以方便快捷地验证各种类型的数据。

安装

通过 npm 安装 egg-property-validator:

然后,在配置文件 config/plugin.js 中启用插件:

使用方法

配置验证规则

我们可以在 app/validator/ 目录下定义一个验证规则的 js 文件,例如定义一个 user.js 文件,里面可以编写如下代码:

上面的代码定义了一个名为 create 的验证规则,包含了 nameagegenderemail 四个属性。每个属性都可以设置类型、是否必填、最大最小值、枚举值等等。

验证请求参数

在我们的 Controller 中,可以使用 this.ctx.validate(rule, data) 方法来验证请求参数。rule 参数为验证规则,可以是一个文件名,也可以直接是一个规则对象;data 参数为待验证的数据,可以是 Query、Body 等参数。具体使用方法可以参考下面的示例代码:

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

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

自定义错误信息

默认情况下,如果校验未通过,egg-property-validator 会抛出一个 422 状态码的异常,并返回一个错误信息的 JSON 对象。如果需要自定义错误信息,我们可以在验证规则中添加 message 属性,例如:

这样,在校验失败时就会返回自定义的错误信息。

示例代码

下面是一个完整的示例代码,包含了定义验证规则、验证请求参数以及自定义错误信息的方法:

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

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

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

这样,我们就可以在 egg 应用程序中方便地使用 egg-property-validator 进行数据校验了。

总结

egg-property-validator 是一款方便快捷的数据验证工具,可以大大提高 Web 开发中数据校验的工作效率。通过学习本文,我们可以掌握 egg-property-validator 的基本使用方法,应用到实际的项目中去。

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

纠错
反馈