gpt4 book ai didi

javascript - 如何扩展 Joi 模式?

转载 作者:行者123 更新时间:2023-12-03 13:41:21 25 4
gpt4 key购买 nike

我有一个名为 user 的 joi 模式

const user = {
firstName: Joi.string()
.min(2)
.max(50)
.required()
.label('First Name'),
lastName: Joi.string()
.min(3)
.max(50)
.required()
.label('Last Name'),
email: Joi.string()
.allow('')
.email({ minDomainAtoms: 2 })
.max(100)
.label('Email Address'),
}

我还有一个叫所有者的

const ownerSchema = {
firstName: Joi.string()
.min(2)
.max(50)
.required()
.label('First Name'),
lastName: Joi.string()
.min(3)
.max(50)
.required()
.label('Last Name'),
email: Joi.string()
.allow('')
.email({ minDomainAtoms: 2 })
.max(100)
.label('Email Address'),
number: Joi.string()
.regex(/[0-9]/)
.length(10)
.required()
.label('Phone Number'),
dateOfBirth: Joi.date(),

kycDetails: Joi.array()
.items(schemaKyc)
.required(),
bankDetails: Joi.array()
.items(schemaBank)
.required(),
licenceDetails: Joi.array()
.items(schemaLicence)
.required(),
insuranceDetails: Joi.array()
.items(schemaInsurance)
.required()
};

正如您所看到的,两者都有三个共同字段,我希望能够在所有者中使用用户架构,并且每当我对用户进行更改时,我希望它也反射(reflect)在所有者中。

最佳答案

您可以使用object.keys([schema]) ,其中

Sets or extends the allowed object keys where:

  • schema - optional object where each key is assigned a joi type object.If schema is {} no keys allowed. If schema is null or undefined, anykey allowed. If schema is an object with keys, the keys are added toany previously defined keys (but narrows the selection if all keyspreviously allowed). Defaults to 'undefined' which allows any childkey.

示例:

const base = Joi.object().keys({
a: Joi.number(),
b: Joi.string()
});
// Validate keys a, b and c.
const extended = base.keys({
c: Joi.boolean()
});

关于javascript - 如何扩展 Joi 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57248745/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com