前言
在前端开发中,我们经常需要校验用户输入的数据是否符合要求。为了提高开发效率,我们可以使用一些现成的工具来完成这个任务。而 Joi 就是一个非常优秀的校验库,它可以帮助我们快速、方便地完成数据校验。在本文中,我们将介绍如何在 Hapi 中封装 API,并使用 Joi 完成数据校验。
Hapi 中封装 API
在实际开发中,我们经常需要编写一些 API 接口来处理数据的 CRUD 操作。为了提高代码的复用性和可维护性,我们可以将这些 API 接口进行封装。在 Hapi 中,我们可以使用路由来实现这个功能。具体的做法是:将每个 API 接口封装成一个路由,并将这些路由注册到 Hapi 的服务器上。下面是一个简单的示例:
----- ---- - ---------------- ----- ------ - --- ------------- ----- ----- ----- ------------ --- ----- ------ - - - ------- ------ ----- --------- -------- --------- -- -- - -- ----------- -- -- - ------- ------- ----- --------- -------- --------- -- -- - -- --------- -- -- - ------- ------ ----- -------------- -------- --------- -- -- - -- --------- -- -- - ------- --------- ----- -------------- -------- --------- -- -- - -- --------- -- -- -- --------------------- ---------------
上面的代码中,我们定义了四个路由,分别对应了获取用户列表、创建用户、更新用户和删除用户这四个 API 接口。这些路由都被注册到了 Hapi 的服务器上,并在启动服务器时生效。
使用 Joi 完成数据校验
在实际开发中,我们经常需要对用户输入的数据进行校验,以确保数据的合法性。而 Joi 就是一个非常优秀的校验库,它可以帮助我们快速、方便地完成数据校验。下面是一个使用 Joi 完成数据校验的示例:
----- --- - --------------- ----- ------ - ------------ --------- -------------------------------------------------- --------- ------------------------ ------------------------------- ---------------- -------------------- ------------- - ------------- ------------- -- ----------- ------------------------------------------- ------ --------------------- ------------------- ------------ ----- ---- - - --------- ------ ----------- ----- ------ ------------------ -- ----- ------ - ---------------------- --------------------
上面的代码中,我们定义了一个 Joi 的 schema,它包含了对用户输入数据的校验规则。在示例中,我们定义了六个校验规则,分别对应了用户名、密码、重复密码、访问令牌、出生年份和邮箱。其中,用户名必须为字母和数字的组合,长度在 3 到 30 之间;密码必须为字母和数字的组合,长度在 3 到 30 之间;重复密码必须与密码相同;访问令牌可以是字符串或数字;出生年份必须为整数,且在 1900 到 2013 之间;邮箱必须符合邮箱的格式。最后,我们将一个数据对象传入了 schema 的 validate 方法中,该方法会返回一个包含校验结果的对象。
在 Hapi 中使用 Joi
在 Hapi 中,我们可以使用 Joi 来完成对用户输入数据的校验。具体的做法是:在路由的配置中使用 validate 选项,并将 Joi 的 schema 传入该选项。下面是一个使用 Joi 完成数据校验的示例:
----- ---- - ---------------- ----- --- - --------------- ----- ------ - --- ------------- ----- ----- ----- ------------ --- ----- ------ - - - ------- ------- ----- --------- -------- --------- -- -- - -- --------- -- -------- - --------- - -------- ------------ --------- -------------------------------------------------- --------- ------------------------ ------------------------------- ---------------- -------------------- ------------- - ------------- ------------- -- ----------- ------------------------------------------- ------ --------------------- ------------------- ------------ -- -- -- -- --------------------- ---------------
在上面的示例中,我们将一个包含了校验规则的 Joi 的 schema 传入了 validate 选项中,并指定了该校验规则应该应用到 payload 中。在实际的开发中,我们可以根据需要选择将校验规则应用到 query、params、headers 或者 payload 中。
总结
在本文中,我们介绍了在 Hapi 中封装 API 的做法,并使用 Joi 完成了对用户输入数据的校验。Joi 是一个非常优秀的校验库,它可以帮助我们快速、方便地完成数据校验。在实际的开发中,我们可以根据需要选择将校验规则应用到 query、params、headers 或者 payload 中,以确保数据的合法性。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65d873fe1886fbafa462bc8a