Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 图式<;[对象]>;已存在,但定义不同_Javascript_Node.js_Npm_Jsonschema_Json Schema Validator - Fatal编程技术网

Javascript 图式<;[对象]>;已存在,但定义不同

Javascript 图式<;[对象]>;已存在,但定义不同,javascript,node.js,npm,jsonschema,json-schema-validator,Javascript,Node.js,Npm,Jsonschema,Json Schema Validator,获取架构已存在,但定义不同错误,尝试在一个架构中引用两个架构 如果我做错了什么,请纠正我: coups.js中的优惠券模式 const优惠券\u模式={ “id”:“/优惠券”, “项目”:{ “id”:“/项”, “财产”:{ “说明”:{ “类型”:“字符串” }, “Ean”:{ “类型”:“字符串” }, “过期日期”:{ “类型”:“字符串” }, “Id”:{ “类型”:“字符串” }, “姓名”:{ “类型”:“字符串” }, “起始日期”:{ “类型”:“字符串” }, “类型

获取
架构已存在,但定义不同
错误,尝试在一个架构中引用两个架构

如果我做错了什么,请纠正我:

coups.js中的优惠券模式

const优惠券\u模式={
“id”:“/优惠券”,
“项目”:{
“id”:“/项”,
“财产”:{
“说明”:{
“类型”:“字符串”
},
“Ean”:{
“类型”:“字符串”
},
“过期日期”:{
“类型”:“字符串”
},
“Id”:{
“类型”:“字符串”
},
“姓名”:{
“类型”:“字符串”
},
“起始日期”:{
“类型”:“字符串”
},
“类型”:{
“类型”:“字符串”
},
“凭证价值”:{
“类型”:“字符串”
}
},
“类型”:“对象”
},
“类型”:“数组”
};

导出默认模式问题可能是您在coups.js和rewards.js中都使用了
id
“/items”<代码>id
s需要是通用唯一的。这就是为什么它们被认为是绝对的URI。

在我的例子中(任何其他登陆这里发现类似问题的人), 我们有一个以下格式的模式文件:

{
  "keyA": {
    "type": "string",
    "example": "0319739002",
    "id": "/keyA",
    "minLength": 1,
    "maxLength": 100
  },
  "keyB": {
    "keyA": {
      "type": "string",
      "example": "0186013001",
      "id": "/keyA",
      "minLength": 1,
      "maxLength": 100
    }
  }
}

其中,keyA是keyB的一部分,但id被重复。删除(/重命名)“id”字段对我们有效。

我们可以查看验证器类/函数吗?验证器函数是从“jsonschema”npm packageid导入的。/items”用于将其定义为数组。我们可以控制它,因为它的父id不同。你误解了我的意思<代码>id不会按您期望的方式嵌套。它们必须是唯一的,不考虑它们的定义位置。您可以改为使用“/优惠券/项目”和“/奖励/项目”,这将是您所期望的,但无论父级
id
s如何,您都不能两次使用“/项目”。这不是JSON模式中存在的概念。