joi相关内容

如何在 joi 中为正则表达式设置自定义消息

当我验证我的 graphql 参数时,我收到密码字段的错误消息. “密码"带有值“"无法匹配所需的模式:/^(?=\\S*[az])(?=\\S*[AZ])(?=\\S*\\d)(?=\\S*[^\\w\\s])\\S{8,30}$/" 我不想在错误消息中显示正则表达式模式.所以我尝试为密码字段设置自定义错误消息,但它仍然显示正则表达式模式. 从“joi"导入Joi;导出默认 Joi.obj ..
发布时间:2022-01-04 11:09:47 其他开发

有没有办法验证 Joi 模式中的动态键名?

有没有一种方法可以使用 Joi 验证这样的值,以便我可以验证它是一个具有零个或多个键(任何名称)的对象,并且每个键的值都为字符串、数字还是布尔值? {dynamicNamedKey1: '一些值',动态命名密钥2:4} 解决方案 你会想要使用 Joi 的 object().pattern() 方法.它专门用于验证具有未知密钥的对象. 要匹配单个键上的一个或多个数据类型,您需要 alte ..
发布时间:2021-12-10 23:41:13 前端开发

Joi:自动验证函数参数

我看到一个使用 joi 库的代码库,如下所示: function f(a, b) {//...}f.schema = {a: Joi.string().uuid().required(),b:Joi.number()} 然后 f.schema 属性没有在其他任何地方被引用.是否有一些框架使用 schema 属性自动验证函数参数?谷歌搜索这没有提出任何东西. 解决方案 我认为不可能完全按 ..
发布时间:2021-09-11 20:14:04 前端开发

带有空值、未定义值、空值和默认值的 npm joi

我正在使用旧版本的 npm 模块 joi => 10.2.2,我想弄清楚如何构建架构,以便使用默认值允许空、空、未定义的值. 这有效https://github.com/hapijs/joi/issues/516 var schema = joi.object().keys({a:[joi.string().optional(), joi.allow(null)]}) 但我不知道如何指定 ..
发布时间:2021-06-09 19:16:45 其他开发

Node.js + Joi 如何显示自定义错误信息?

使用 Joi 验证用户在 Node.js RESTapi 中的输入似乎非常简单. 但问题是我的应用程序不是用英文编写的.这意味着我需要向前端用户发送自定义的书面消息. 我在谷歌上搜索过,但只发现了问题. 也许有人可以为此提供解决方案? 这是我用来验证 Joi 系统的代码: var schema = Joi.object().keys({名字:Joi.string().m ..
发布时间:2021-06-07 20:46:14 其他开发

我需要在猫鼬中使用 @hapi/joi 吗?

我需要使用@hapi/joi 与 mongoose? 据我所知 @hapi/joi 用于验证 HTTP 请求(标头、参数、正文等).@hapi/joi 提供它自己的模式验证.mongoose 也提供了它自己的模式验证,但在另一个层面上.如果 hapi/joi 尝试验证 HTTP 请求,则 mongoose 模式验证可确保数据插入到数据库中是有效的. 正如您所看到的,这两个库都提供了自己 ..
发布时间:2021-06-03 20:55:30 其他开发

hapijs joi验证,比从其他属性的总和验证更大

我想验证字段"familymemberCount",该字段应大于其他字段.我尝试了下面的代码,但是这不允许在Ref中使用'+'运算符.如何验证其他值的总和? export const familyMemberRulesSchema = Joi.object({relatedMembers:Joi.object({motherCount:Joi.number().integer().min(0) ..
发布时间:2021-05-13 20:24:52 其他开发

标记所有属性是否为必需的Joi

我正在构建Express API,并使用@ hapi/joi进行验证.但是,我发现自己处于以下情况:如果要验证新用户,则必须要求架构中的所有属性,但是如果客户端要修改用户,则这些属性必须是可选的,因为只有客户端知道什么它将修改的属性.因此,如果我有新用户使用此架构: function validateUser(user){const schema = Joi.object().keys({名称 ..
发布时间:2021-05-06 19:30:07 其他开发

如何在Joi中添加自定义验证器功能?

我有Joi模式,并想添加一个自定义验证器来验证数据,而默认的Joi验证器是无法实现的. 当前,我正在使用Joi的16.1.7版本 const方法=(值,帮助器)=>{//例如,如果用户名值是(something),则它将在流消息中引发错误,但会在(值)对象内部引发错误而没有错误消息.它应该在(error)对象内抛出错误,并带有正确的错误消息if(value ==="something") ..
发布时间:2021-05-06 19:18:25 前端开发

如何在Joi中为正则表达式设置自定义消息

当我验证graphql参数时,我在密码字段中收到了这样的错误消息. "password"值“"无法匹配所需的模式:/^(?= \\ S * [az])(?= \\ S * [AZ])(?= \\ S * \\ d)(?= \\ S * [^ \\ w \\ s])\\ S {8,30} $/" 我不想在错误消息中显示正则表达式模式.因此,我尝试为密码字段设置自定义错误消息,但仍显示正则表达式 ..
发布时间:2021-05-04 20:47:44 其他开发

Joi验证正则表达式或模式

我想让joi使用在变量中定义的正则表达式模式 我有一个变量 pattern ,其中包含正则表达式即 pattern ="/^ [0-9 +] {7}-[0-9 +] {1} $/" 此模式发送到Joi模块并要确认 module.exports = {保存: {身体: {匹配:Joi.string().regex(pattern).required}}} 如果使用此功能,我知道 ..
发布时间:2021-04-16 20:02:45 其他开发

Joi验证设置默认为空对象

我遇到了Joi验证的问题(或我认为是的问题).如果要将它作为请求正文的一部分传递,我正在尝试为不存在的键分配一个值. 例如: parameters: Joi.object().keys({ keyA: Joi.string().allow('').allow(null).default(null), keyB: Joi.object().keys({ b1: Joi.s ..
发布时间:2020-11-22 04:24:13 其他开发

Joi Regex不被识别为Regex模式

我正在尝试为密码字段制定一个验证规则,该规则应包含以下内容: 必须有一个电话号码 必须至少包含一个大写字母 必须至少包含一个小写字母 必须包含以下任何符号[@ $!] 只能是8到20个字符. 这是我使用的正则表达式模式:(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[$@$!#.])[A-Za-z\d$@$!%*?&.]{8,20} 在 https ..
发布时间:2020-11-22 04:23:05 其他开发

Joi多重条件

我想对Joi进行体内验证,但似乎永远无法正常工作,并且会一直处于相同的状态. 因此,如果我 POST 与此 终点: /elasticSearch?eType = scroll& scroll = 1h 身体:{} 应该抛出错误的原因,因为eType是 scroll ,在这种情况下,需要 scroll_id ,而不是null,不为空. 即使我为此 POST 终点: /e ..
发布时间:2020-11-22 04:22:52 前端开发

多种Joi验证类型

我搜索了很多,但没有找到允许在Joi 中进行多种类型验证的内容 链接: https://github.com/hapijs/joi 我想使用这样的东西: validate: { type: joi.or([ joi.string(), joi.array(), ]) }; 解决方案 尝试: validate: { ..
发布时间:2020-11-22 04:21:34 前端开发

如何在Joi中允许其他任何键

我有一个简单的要求.我尝试在Internet和文档上进行搜索,但均失败了. 所以这是我想要实现的: 我有一个模式: const schema = Joi.object().keys({ a: Joi.string().required(), b: Joi.string().required() }); 现在,如何配置它,以便允许对象中的任何其他键? 在这种模式下,它 ..
发布时间:2020-11-22 04:21:20 前端开发