gpt4 book ai didi

node.js - Joi有 "not"的概念吗?

转载 作者:行者123 更新时间:2023-12-02 02:14:09 25 4
gpt4 key购买 nike

问题

我有一个已从 JSON 字符串解析的对象。我想确认它的字段仅包含原始类型(例如数字、 bool 值、字符串)。具体来说,我想确认所有字段值都不是对象

Joi有not的概念吗?我可以在不列出所有可能的非对象类型的情况下执行此操作吗?

尝试

我尝试使用any.disallow这几乎是我所需要的(并且,我在发布问题后意识到,被列为具有别名not)。

import Joi from 'joi'

const schema = Joi.object().keys({
myKey: Joi.any().not(Joi.object()),
})

但是这似乎需要值。这意味着它不会与模式进行比较,并且会将任何不是 Joi.object() 返回的文字值的值视为有效。

最佳答案

目前看来答案是否定的。

也就是说,可以定义 custom validation functions对于未融入 Joi 的逻辑。

像下面这样的东西确实有效:

import Joi from 'joi'

const schema = Joi.object().keys({
myKey: Joi.any().custom(
(value, helpers) => {
if (typeof value === 'object' && value !== null) {
return helpers.error('any.invalid');
}
return value
},
'is not an object',
),
})

关于node.js - Joi有 "not"的概念吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67370911/

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