在现代 Web 开发中,输入验证是一项必不可少的任务。请求验证可以使我们在处理数据之前,确保它们符合我们的期望,从而提高应用程序的可靠性和安全性。Fastify 是一个快速和低开销的 Web 框架,而 Joi 是一个强大的模式验证库,使用它们可以快速构建出高效的请求验证系统。
安装和配置 Fastify 和 Joi
首先,我们需要安装和配置 Fastify 和 Joi。安装 Fastify 和 Joi:
--- ------- ------- ---
安装完成后,在你的应用程序中导入我们需要的库:
----- ------- - -------------------- ------- ---- -- ----- --- - --------------
接下来,使用 Fastify 插件注册 Joi:
----------------------------------------
现在,我们已经配置了 Fastify 和 Joi,可以开始编写验证逻辑了。
使用 Joi 编写验证逻辑
Joi 提供多种验证器,包括字符串、数字、日期和数组等等。使用这些验证器可以轻松验证传入的数据。下面是一个使用 Joi 检查请求体中是否提供了 name 和 age 字段的示例:
----------------- - ------- - ----- ------------ ----- ------------------------ ---- --------------------------------------------- --- -- -- ----- ---- -- - ----- - ----- --- - - -------- -- -- --------- ---- ---- --- --- ---------- -------- -------- ---- -- ------- -- --
在上面的示例中,我们使用了 fastify.post()
注册了一个处理 POST 请求的路由处理程序。我们使用了 Joi.object()
定义了一个包含 name 和 age 字段的对象,然后使用 Joi.string()
和 Joi.number()
分别定义了这两个字段的验证规则。
使用 Joi.required()
来添加“必须”的验证规则,如果验证失败,则会抛出一个异常。
自定义错误信息
在默认情况下,Joi 的错误消息可能不太友好,不太容易理解。不过,你可以重写自己的错误消息,来更好地告知用户哪一个参数是有问题的。
----------------- - ------- - ----- ------------ ----- ---------------------------------- --------------- --------- --------------- --------- --- ---- ------------------------------------------------------- ----------------- ---------- ------------------ ---------- --------------- --------- --- --- -- -- ----- ---- -- - ----- - ----- --- - - -------- -- -- --------- ---- ---- --- --- ---------- -------- -------- ---- -- ------- -- --
在这个示例中,我们使用 .messages()
方法来自定义错误消息。这将五个定义放到了我们的验证器的错误对象中。这些“键”是由验证器生成的错误消息中的“占位符”,它们可以用来定义自己的默认错误消息。
总结
在本文中,我们介绍了如何使用 Fastify 和 Joi 来验证请求体中的数据。我们演示了如何定义和配置 Fastify 和 Joi,并展示了如何使用 Joi 来定义各种验证器和自定义错误消息。如果你遇到了类似的需求,不要犹豫,使用 Fastify 和 Joi 来进行请求验证吧!
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65a88453add4f0e0ff1a664f