- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个复杂的场景,我想使用 Joi
进行验证这里是 Joi 对象架构示例
const itemSchema = Joi.object({
product_id: Joi.string().required(),
quantity: Joi.number().required().min(0)
});
let objSchema = {
items: Joi.array().items(itemSchema).required().min(1),
item_return_flag: Joi.string().optional().valid(true, false)
};
根据 item_return_flag
键值 true
或 false
,我想更改 items.quantity
最小值要求。当 true
时,数量将为 0 ,否则为 1。
无论如何,有没有基于Joi
中的根对象来控制数组中对象验证的定义
最佳答案
将基于父键 item_return_flag
切换架构的示例代码。数组的模式需要使用 Joi.altertnatives()
let itemArr = Joi.object({
product_id: Joi.string().required(),
quantity: Joi.number().required().min(0)
});
let itemArr2 = Joi.object({
product_id: Joi.string().required(),
quantity: Joi.number().required().min(1)
});
let itemSchema = Joi.alternatives()
.when('item_return_flag', { is: true, then: Joi.array().items(itemArr).required().min(1), otherwise: Joi.array().items(itemArr2).required().min(1)}) ;
let objSchema = {
items: itemSchema,
item_return_flag: Joi.string().optional().valid(true, false)
};
关于javascript - Joi 数组 基于根键值的对象验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51832287/
我有一个 api,在过去的开发中,它会接收逗号分隔的字符串作为有效输入,并使用以下内容作为验证器: Joi.string() 但现在我想使用这里提到的字符串数组来实现相同的变量 https://git
这是我的 Joi 模式 const createRoom = { body: { createdBy: Joi.string().required(), members: Joi.
我刚刚遇到了我必须处理的这行代码: Joi.array().label('Emails').items(Joi.string()).required() 我特别不明白 .label('Emails')
我有两个文件,一个是 api.js,另一个是 handler.js。对于模式处理,我正在使用庆祝模块 @hapi/joi On api.js I wrote only the API name On
let obj = Joi.object().keys({ "id": Joi.string().required(), "array": Joi.array().items
我想使用 Joi 验证对象,该对象不使用 Joi.ref() 和乘法运算。 var object = { a: 5, b: 6 } // this is wrong as Joi.re
我正在构建一个 JOI 扩展,如果他们在 JWT 范围内缺少某些角色,我可以将某些人列入黑名单,禁止他们发送某些 API 值。 到目前为止我已经这样做了: const Joi = require('j
我有一个场景,我需要根据所在国家/地区使用不同的正则表达式验证增值税号。因此,当字段 language 为 SE 时,我想使用此正则表达式 /^\d{6}-\d{4}$/字段 company.vatN
根据 Joi 文档,您可以像这样使用 Joi.object(): const object = Joi.object({ a: Joi.number().min(1).max(10).inte
joi.string().valid(['foo', 'bar']) 已弃用。 Error: Method no longer accepts array arguments: allow 实现这一目
我如何使用 Joi 来验证替换字段具有零个或多个键/值对?并且每个键都是一个字符串,每个值都是一个字符串、数字或 bool ? "substitutions": { "somekey": "s
我有一个复杂的验证,它根据 JSON 中的 a 值而变化。 { type: 'a', thing: 1, foo: 'abc' } { type: 'b', thing: 2, bar: 123 }
我有一个这样的嵌套模式设置: var schema = Joi.object().keys({ first_name: Joi.string().required(), last_name:
我目前在我的应用程序中有以下架构: Joi.object().keys({ users: Joi.array().items(mySchema) }) 所以我可以获得一组用户并验证它们。但现在我需
您好,我正在使用 "@hapi/joi": "^15.1.1"。很遗憾,我现在无法更新到最新的 Joi 版本。 这是我的验证模式 const schema = { name: Joi.str
我正在尝试验证一个架构,该架构与其他字段一起具有一系列自引用对象,如下所示: export const answer = answerModel.concat(Joi.object().keys({
我在 Joi 验证方面遇到了一个问题(或者我认为是一个问题)。如果它作为请求正文的一部分传递,我正在尝试为不存在的键分配一个值。 例如: parameters: Joi.object().keys({
我想为 populatedString 创建自定义 Joi 类型,方法是使用 .extend(..) 创建一个基于 joi.string() 的类型 其中: trim 字符串 如果 trimmed s
我必须逐个验证值,而不是为多个值传入整个架构。基于此处的单值验证文档 https://hapi.dev/module/joi/ 和这个示例代码 const validator: AnySchema =
我尝试使用 Joi.alternatives.try() 创建一个 Joi 模式.这是我尝试过的模式。 Joi.alternatives().try(Joi.object({ type: Jo
我是一名优秀的程序员,十分优秀!