首页 > 解决方案 > JOI 电子邮件验证

问题描述

我使用 Joi 库作为我的 CRA 项目的独立验证器,但是在触发email()验证器时,我得到了神秘的错误

Uncaught Error: Built-in TLD list disabled

标签: hapijsjoi

解决方案


来自 Joi文档

默认情况下,TLD 必须是 IANA 注册表中列出的有效名称。要禁用验证,请将 tlds 设置为 false。要自定义 TLD 的验证方式,请设置以下选项之一:

允许 - 之一:

  • 如果使用 IANA 注册 TLD 列表,则为 true。这是默认值。
  • false以允许拒绝列表中未列出的任何 TLD(如果存在)。
  • 允许的 TLD 的集合或数组。不能
    与拒绝一起使用。

要针对 IANA 接受列表禁用 TLD 验证:

email: Joi.string().email({ tlds: { allow: false } });

这应该会禁用验证并允许您接受任何 TLD,即使它没有经过 IANA 注册。


推荐阅读