可以用 Joi 创建双向链表吗?
It is possible to create a doubly linked list with Joi?
我有一个名为 directorySchema 的 Joi 架构,除其他键外,此架构有一个名为 parentDirectory 的键,该类型也是一个 directorySchema,如果目录是 root/head 目录,则可以为空,并且另一个名为 directories 的键,其类型也是 directorySchemas 的数组。基本上这个模式代表一个双向链表。
仿照范例:
const Joi = require('@hapi/joi')
const directorySchema = Joi.object({
name: Joi.string().required(),
path: Joi.string().required(),
size: Joi.number().min(0).required(),
directories: Joi.array().items(...) // how to reference "directorySchema" here
parentDirectory: ... // and here?
})
module.exports = directorySchema
这张图解释了双向链表的概念,方框对象代表目录。
我想知道,是否可以创建一个双链表来验证我在 Joi 中的对象?
您可以使用 joi 链接:
const Joi = require('@hapi/joi')
const directorySchema = Joi.object({
name: Joi.string().required(),
path: Joi.string().required(),
size: Joi.number().min(0).required(),
directories: Joi.array().items(Joi.link("#directory"))
}).id("directory")
module.exports = directorySchema
我有一个名为 directorySchema 的 Joi 架构,除其他键外,此架构有一个名为 parentDirectory 的键,该类型也是一个 directorySchema,如果目录是 root/head 目录,则可以为空,并且另一个名为 directories 的键,其类型也是 directorySchemas 的数组。基本上这个模式代表一个双向链表。
仿照范例:
const Joi = require('@hapi/joi')
const directorySchema = Joi.object({
name: Joi.string().required(),
path: Joi.string().required(),
size: Joi.number().min(0).required(),
directories: Joi.array().items(...) // how to reference "directorySchema" here
parentDirectory: ... // and here?
})
module.exports = directorySchema
这张图解释了双向链表的概念,方框对象代表目录。
我想知道,是否可以创建一个双链表来验证我在 Joi 中的对象?
您可以使用 joi 链接:
const Joi = require('@hapi/joi')
const directorySchema = Joi.object({
name: Joi.string().required(),
path: Joi.string().required(),
size: Joi.number().min(0).required(),
directories: Joi.array().items(Joi.link("#directory"))
}).id("directory")
module.exports = directorySchema