以下是我尝试编译并用于验证的 JSON 架构示例。为此,我使用了 'ajv' npm module .
这是我正在运行的代码......
var ajv = require('ajv')();
var contactSchema = {
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Contact",
"type": "object",
"additionalProperties": false,
"properties": {
"work": { "$ref": "#definitions/phone" },
"home": { "$ref": "#definitions/phone" },
},
"definitions": {
"phone": {
"type": "object",
"required": ["number"],
"properties": {
"number": { "type": "string" },
"extension": { "type": "string" }
}
}
}
};
var validator = ajv.compile(contactSchema);
当我运行这段代码时,出现以下异常..
Error: can't resolve reference #definitions/phone from id #
有没有其他人遇到过这种问题?知道我可能做错了什么吗?
最佳答案
你的引用不正确(虽然它是有效的),它应该是#/definitions/phone
或者,要使其正常工作,您可以在电话模式中添加 "id": "#definitions/phone"
,但使用 "id": "#phone 更常见"
(也更新 $refs)。
关于node.js - 为什么 Ajv 在编译期间无法解析引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40306394/