前言
前端开发中,数据校验是一个必不可少的步骤。为了简化数据校验的流程,npm上有很多优秀的数据校验的工具,其中joi-yml是一个小而精悍的包。在本文中,我们将一步步学习如何使用joi-yml。
安装
使用npm安装joi-yml非常方便。在终端中输入以下命令即可:
npm install joi-yml
安装完成后,你就可以在你的项目中使用joi-yml了。
基础使用
joi-yml的主要作用是用来校验数据的。joi-yml支持的数据类型非常丰富,包括数字、字符串、日期、邮箱、手机号等等。下面我们通过一个例子来了解一下如何使用joi-yml。
-- -------------------- ---- ------- ----- --- - ------------------- ----- ------ - ------------------- ----- ------------------------ ---- --------------------------------------- ------ --------------------- ------ --------------------------------------- --- ----- ---- - - ----- ------ ---- --- ------ -------------- ------ ------------- - ----- ------ - ------------------ -------- -- -------------- - ----------------------------------------------- ------ ---------------------- -
在上面的代码中,我们首先定义了一个数据校验逻辑,在逻辑中,name字段为字符串类型,并且为必选字段;age字段为数字类型,必须为整数且必须大于等于0小于等于150;email字段为字符串类型,必须为邮箱格式;phone字段为字符串类型,必须为手机号格式。然后我们定义了一个数据对象,最后使用Joi.validate()函数进行数据校验。如果校验通过,则输出“数据校验通过”,如果校验不通过,则输出错误信息。
高级使用
除了上面的基础校验外,joi-yml还支持自定义校验规则、异步校验、多语言等高级功能。接下来我们将了解这些高级功能。
自定义校验规则
有时候我们需要校验的数据并不是简单的数据类型,而是一些复杂的数据类型。此时,我们可以通过自定义校验规则来实现校验。
-- -------------------- ---- ------- ----- --- - ------------------- ----- ------ - ------------------- ----- ------------------------ ----- ------------------ ------------ ---- --------------------------------------- ------ --------------------- ------ --------------------------------------- ----------- ------------------------- ------------ -------- -------- ------------- -- --- ----- ---- - - ----- ------ ----- - - ---- --- ------ -------------- -- - ------ -------------- ----------- ------------------- -- - ---- --- ------ --------------- -- - - ----- ------ - ------------------ -------- -- -------------- - ----------------------------------------------- ------ ---------------------- -
在上面的代码中,我们定义了一个更复杂的数据校验逻辑,逻辑中data字段为一个数组类型,数组中的每个元素为一个对象类型,对象中有四个字段,分别是age、email、phone和creditCard。其中age、email、phone和creditCard当中至少一个必须填写。如果只填写一个,则可以填写其中任意一个;如果填写多个,则只需要其中的一个符合要求即可。
异步校验
有时候我们需要校验的数据可能是异步返回的,此时我们可以使用异步校验的方式。
-- -------------------- ---- ------- ----- --- - ------------------- ----- ------ - ------------------- ----- ------------------------ ------ --------------------------------------------------- ------- -------- -- - ----- ------ - ----- ------------------ -- -------- - ------ ------ - ---- - ------ ---------------------------- - --- --- ----- -------- ----------------- - ------ --- --------------- -- - ------------- -- - ------------- --- --------------- -- ------ -- - ----- ---- - - ----- ------ ------ ------------- - ----- ------ - ----- --------------------------- --------------------
在上面的代码中,我们定义了一个异步的校验规则,其中phone字段需要先异步校验其格式是否正确。如果格式不正确,则返回错误信息。否则返回正确的电话号码。
多语言功能
Joi-yml支持通过设置错误提示信息语言来提供国际化的支持。
-- -------------------- ---- ------- ----- --- - ------------------- -------------------------- - ---- - --------- ------- -- ------- - -------- ------- -- ------- - ------ ---------- ------ - ----- ------- ------ ---------- - - --- --------------------------- ----- ------ - ------------------- ----- ------------------------ ---- --------------------------------------- ------ --------------------- ------ ---------------------------------------------------------------------- --------------------- --- ----- ---- - - ----- ------ ---- ----- ------ -------------- ------ ---------------- - ----- ------ - ------------------ -------- -- -------------- - ----------------------------------------------- ------ ---------------------- -
在上面的代码中,我们定义了一个包含中文错误提示信息的校验规则,同时我们也修改了当前的语言设置,设置为中文。在校验规则代码中,我们使用Joi.addLocaleData()方法添加错误提示信息语言。在校验代码中,我们使用Joi.setLocaleData()方法设置当前使用的语言。在数据对象中,我们故意将age字段设置为字符串类型用于产生一个错误。此时Joi将会使用我们定义的中文错误提示信息“必须为整数”来提示错误。
结语
本文介绍了npm包joi-yml的基础使用和高级使用。通过本文,相信大家已经可以熟练的使用joi-yml对数据进行校验了。在使用过程中,可以灵活运用joi-yml的高级功能,满足不同的校验需求,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600668efd9381d61a3540d42