ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

解决Error: unknown format “email“ ignored in schema at path “#/properties/name“

2022-03-20 12:03:11  阅读:232  来源: 互联网

标签:ignored const name format ajv type schema


在学习Vue3.0+TS打造企业级组件库 前端中高级开发者必修课这个教程的时候,很多人如果跟着教程走,学到3-3 json-schema的format和自定义format这个章节的时候,会发现你如果跟着教程添加format,然后声明format为email类型

const Ajv = require('ajv')
const addFormats = require('ajv-formats')
const ajv = new Ajv()
addFormats(ajv)

const schema = {
  type: 'object',
  properties: {
    name: {
      type: 'string',
      format: 'email'
      // minLength:10,
    },
    age: {
      type: 'number',
    },
    pets: {
      type: 'array',
      items: [
        {
          type: 'string',
        }, {
          type: 'number'
        }
      ],
    },
    isWorker: {
      type: 'boolean',
    },
  },
  required: ['name', 'age'],
}

// const ajv = new Ajv()
const validate = ajv.compile(schema)
const valid = validate({
  name: 'webshi',
  age: 18,
  pets: ['nihoa', 12],
  isWorker: true,
})
if (!valid) console.log(validate.errors)

运行后会出现这个错误:
Error: unknown format “email” ignored in schema at path "#/properties/name"
在这里插入图片描述
按照视频教程,由于你输入的格式不是邮箱的格式应该运行后的提示应该是这样的
在这里插入图片描述
可是你按照教程的步骤走出现的问题是
Error: unknown format “email” ignored in schema at path "#/properties/name"
出现这个问题的原因是你如果想在当前的文件下使用format你就要把format引入进来,你如果不引入就使用这个方法,文件是无法找到这个方法的,就会报这个错误。
解决方法是在使用这个方法的文件下,引入format。

const Ajv = require('ajv')
const addFormats = require('ajv-formats')
const ajv = new Ajv()
addFormats(ajv)

完整代码:

const Ajv = require('ajv')
const addFormats = require('ajv-formats')
const ajv = new Ajv()
addFormats(ajv)

const schema = {
  type: 'object',
  properties: {
    name: {
      type: 'string',
      format: 'email'
      // minLength:10,
    },
    age: {
      type: 'number',
    },
    pets: {
      type: 'array',
      items: [
        {
          type: 'string',
        }, {
          type: 'number'
        }
      ],
    },
    isWorker: {
      type: 'boolean',
    },
  },
  required: ['name', 'age'],
}

// const ajv = new Ajv()
const validate = ajv.compile(schema)
const valid = validate({
  name: 'webshi',
  age: 18,
  pets: ['nihoa', 12],
  isWorker: true,
})
if (!valid) console.log(validate.errors)

运行后的结果就跟视频教程上是一样的了
在这里插入图片描述

标签:ignored,const,name,format,ajv,type,schema
来源: https://blog.csdn.net/qq_42943107/article/details/123609869

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有