草庐IT

javascript - 使用 Joi,要求两个字段之一为非空

如果我有两个字段,我只想在至少一个字段为非空字符串时进行验证,但在两个字段均为空字符串时验证失败。这样的东西不验证varschema=Joi.object().keys({a:Joi.string(),b:Joi.string()}).or('a','b');验证时{a:'aa',b:''}or条件仅测试键a或b是否存在,但会测试a的条件是否存在或b为真。Joi.string()将因空字符串而失败。这里是要点和一些要演示的测试用例http://requirebin.com/?gist=84c49d8b81025ce68cfb 最佳答案

javascript - Joi 验证多个条件

我有以下架构:vartestSchema=Joi.object().keys({a:Joi.string(),b:Joi.string(),c:Joi.string().when('a',{'is':'avalue',then:Joi.string().required()})});但我想在c字段定义上添加一个条件,以便在以下情况下需要它:a=='avalue'ANDb=='bvalue'我该怎么做? 最佳答案 您可以连接两个when规则:varschema={a:Joi.string(),b:Joi.string(),c:Joi.

go - 如何像 Javascript 的 Joi 一样验证 Go 对象数据?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion我使用Joi在JavaScript中执行对象模式和数据验证。在Golang中,我知道如何进行模式验证,但我如何进行数据验证?是否有适用于Golang的Joi等效项?我知道Godog,但它还没有达到1.0。

go - 如何像 Javascript 的 Joi 一样验证 Go 对象数据?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion我使用Joi在JavaScript中执行对象模式和数据验证。在Golang中,我知道如何进行模式验证,但我如何进行数据验证?是否有适用于Golang的Joi等效项?我知道Godog,但它还没有达到1.0。

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

使用Joi验证用户在Node.jsRESTapi中的输入似乎非常简单。但问题是我的应用程序不是用英文编写的。这意味着我需要向前端用户发送自定义的书面消息。我已经用谷歌搜索过,只是发现了问题。也许有人可以为此提供解决方案?这是我用来验证Joi系统的代码:varschema=Joi.object().keys({firstName:Joi.string().min(5).max(10).required(),lastName:Joi.string().min(5).max(10).required()..});Joi.validate(req.body,schema,function(er

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

使用Joi验证用户在Node.jsRESTapi中的输入似乎非常简单。但问题是我的应用程序不是用英文编写的。这意味着我需要向前端用户发送自定义的书面消息。我已经用谷歌搜索过,只是发现了问题。也许有人可以为此提供解决方案?这是我用来验证Joi系统的代码:varschema=Joi.object().keys({firstName:Joi.string().min(5).max(10).required(),lastName:Joi.string().min(5).max(10).required()..});Joi.validate(req.body,schema,function(er

joi:定义多个自定义错误信息

目录前言原始版基础错误版复杂版简单版前言在项目中,提交表单进行字段验证是必不可少的,在node项目中,自己写ifelse判断非常的繁琐,也不好进行维护,所以我们通常都会引入第三方包joi,来帮助我们进行表单字段的验证。原始版于是我写下了以下代码:constusername=joi.string().alphanum().min(1).max(10).required()当然,验证是通过的,没有问题的,username是一个字符串,值只能包含a-zA-Z0-9,最小长度1,最大长度10,必填项。利用postman发送请求,先看看会返回什么。长度大于10的时候返回:包含特殊字符的时候返回:等等,还

node.js - 如何在 Joi 字符串验证中使用枚举值

我正在为我的HTTP请求使用Joi验证器。我有一个名为type的参数。我需要确保参数的可能值是“ios”或“android”。我该怎么做?body:{device_key:joi.string().required(),type:joi.string().required()} 最佳答案 您可以使用有效。constschema=Joi.object().keys({type:Joi.string().valid('ios','android'),});constmyObj={type:'none'};constresult=Joi.

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

有没有一种方法可以用Joi验证这样的值,这样我就可以验证它是一个具有零个或多个键(任何名称)的对象,并且每个键的值都是字符串、数字还是bool值?{dynamicallyNamedKey1:'somevalue',dynamicallyNamedKey2:4} 最佳答案 您将要使用Joi的object().pattern()方法。它专门用于验证具有未知键的对象。要在单个键上匹配一种或多种数据类型,您需要alternatives().try()(或者简单地传递一个Joi类型的数组)。因此满足您需求的规则是:Joi.object().p

javascript - Joi 嵌套模式

我正在尝试在joi中创建嵌套模式,但它正在抛出错误[错误:对象架构不能是joi架构]varnestedSchema=joi.object({b:joi.number()});varbase=joi.object({a:joi.string(),nestedData:joi.object(nestedSchema)});我应该如何在joi中定义嵌套模式? 最佳答案 虽然Francesco的回答有效,但没有必要使用object.keys()。问题创建者所做的错误是将模式作为参数传递给joi.object()。因此,创建嵌套模式就像将模式