hapijs joi 验证,验证大于其他属性的总和

2023-12-07

我想验证一个字段“familymemberCount”,它应该大于等于其他字段。 我尝试了下面的代码,但这不允许将“+”运算符与 Ref 一起使用。 我们如何用其他值的总和进行验证?

export const familyMemberRulesSchema = Joi.object({
    relationMembers: Joi.object({
        motherCount: Joi.number().integer().min(0).max(5).optional(),
        fatherCount: Joi.number().integer().min(0).max(5).optional(),
        childrenCount: Joi.number().integer().min(0).max(5).optional()
    }),
    familyMemberCount: Joi.number().integer().min(0).max(15).greater(
        Joi.ref('relationMembers.motherCount') +
        Joi.ref('relationMembers.fatherCount') +
        Joi.ref('relationMembers.childrenCount') 
    )
});

The joi.ref这样行不通。您需要编写一个自定义函数来获取所有值并以这种方式求和。基本上用adjust功能,同时使用Joi.ref。像这样的东西。

const Joi = require("@hapi/joi");

const familyMemberRulesSchema = Joi.object({
    relationMembers: Joi.object({
        motherCount: Joi.number().integer().min(0).max(5).optional(),
        fatherCount: Joi.number().integer().min(0).max(5).optional(),
        childrenCount: Joi.number().integer().min(0).max(5).optional()
    }),
    familyMemberCount: Joi.number().integer().min(0).max(15).greater(
        Joi.ref('relationMembers', {"adjust": relationMembers => {
            return relationMembers.motherCount + relationMembers.fatherCount + relationMembers.childrenCount;
        }})
    )
});

const result = familyMemberRulesSchema.validate({"relationMembers": {"motherCount": 2, "fatherCount": 1, "childrenCount": 2}, "familyMemberCount": 6});

console.log(result);

const error = familyMemberRulesSchema.validate({"relationMembers": {"motherCount": 4, "fatherCount": 1, "childrenCount": 2}, "familyMemberCount": 6});

console.log(error);


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hapijs joi 验证,验证大于其他属性的总和 的相关文章

  • 如何在注销时销毁 JWT 令牌?

    我在 hapijs 中使用 jwt 插件和策略 我能够在登录用户时创建 jwt 令牌 并通过 jwt 策略使用相同的令牌对其他 API 进行身份验证 我正在设置令牌request state USER SESSION作为一个饼干在哪里USE
  • Joi 验证正则表达式或模式

    我想加入使用在变量中定义的正则表达式模式 我有一个变量pattern其中包含正则表达式 IE pattern 0 9 7 0 9 1 这个模式发送到 Joi 模块并想要确认 module exports save body match Jo
  • Zod Schema Validation 中至少一个/最少一个字段

    我已经使用 JOI 实现了此代码 其中用户必须发送 userId 和正文中的至少一个键 如何使用 ZOD 实现相同的功能 params Joi object keys userId Joi required custom objectId
  • 如何从 hapi.js 路由处理程序外部进行回复

    我有一个hapi js我想推迟响应的路线 我尝试过存储reply函数并稍后调用它 或者将其包装在 Promise 中 但 hapi 总是立即响应 500 内部服务器错误响应 存储回复以供稍后使用 var pendingReplies ser
  • Node Docker 运行,但看不到应用程序

    我的 Hapi 应用程序似乎正在 Docker 容器中运行 但我无法在浏览器中访问它 我以为docker run d p 8080 3000本来会这么做的 但我想不会 我正在运行 boot to docker 但两者都没有http loca
  • 验证两个属性相等

    是否可以验证类型的两个对象属性string是平等的使用Joi I found Joi ref 但我想知道是否还有其他方法可以做到这一点 尤其是作为Joi ref 似乎不支持any error 是的 可以检查对象的两个属性是否相同 并使用Jo
  • 如何使用 TypeScript 从 npm 扩展模块?

    我在用着joi https github com hapijs joi blob master API md and 类型 joi https github com DefinitelyTyped DefinitelyTyped tree
  • Hapi Lab 为什么所有测试都通过了却测试失败

    有谁知道 的含义吗 npm 错误 测试失败 请参阅上文了解更多详情 3 tests complete Test duration 873 ms The following leaks were detected lr npm ERR Tes
  • 修复 Hapi 版本 19.0.3 错误 415 unsupported media type upload file with multipart/form-data

    我进行了搜索 但找不到正确的答案 我显得很无助 但幸运的是 visua 代码帮助调试了代码 我在index js hapi subtext lib 文件中找到了这一行 if contentType mime multipart form d
  • Joi 嵌套架构

    我正在尝试在 joi 中创建嵌套架构 但它抛出错误 错误 对象模式不能是 joi 模式 var nestedSchema joi object b joi number var base joi object a joi string ne
  • heroku 上的 Hapi 服务器无法绑定端口

    我正在为 ReactJS 应用程序开发 Hapi 服务器 但当我尝试部署到 Heroku 时 收到 R10 错误 无法在启动后 60 秒内绑定到 PORT 到底是怎么回事 我正在使用 process env PORT 我也尝试过 parse
  • 具有 null、未定义、空值和默认值的 npm joi

    我正在使用旧版本的 npm 模块 joi gt 10 2 2 我试图弄清楚如何构建架构 以便允许使用默认值为空 空 未定义的值 这有效https github com hapijs joi issues 516 https github c
  • 使用 Joi 验证时剥离未知键

    我正在使用 Joi 验证服务器中的 JavaScript 对象 架构如下 var schema Joi object keys displayName Joi string required email Joi string email e
  • 如何全局定义套接字变量

    我的里面有这段代码socketio文件 在这里我可以使用socket simply import from lodash import mongoose from mongoose exports register server optio
  • 从另一个路由调用 hapi 路由

    我对 HapiJS 还很陌生 我正在构建一个服务 其中有两条路线 route 1 和 route 2 都使用插件架构 我已将两者注册为我的清单文件中的插件 我想从 route2 调用 route1 因此 route2 取决于 route1
  • hapi.js - 404 路由 VS 静态文件路由

    我正在尝试将 Express 应用程序迁移到 hapi js 但我的路线遇到了问题 我只想要 2 GET 我的索引 以及所有不是 的内容重定向到 使用 Express 我有这个 static files app use express st
  • 如何让车把布局在 node/hapi.js 中工作

    我无法在 hapi js 应用程序中渲染车把布局 布局渲染得很好 但部分根本不渲染 只有空白 我这样声明 var handlebars require handlebars layouts require handlebars layout
  • Nodejs Hapi - 如何启用跨源访问控制

    我正在使用 HapiJs Restful Web 服务并尝试启用 cors 以便任何来自不同域的客户端都可以使用我的服务 我在服务器连接对象中尝试了 cors true 但没有成功 你放在哪里cors true 你能添加一些代码吗 不知道你
  • 使用嵌套对象进行 Hapi/Joi 验证

    我对我的其中一条路线进行了以下验证 payload keywordGroups Joi array items Joi object keys language Joi string required containsAny Joi arr
  • hapijs有过载保护之类的东西吗?

    如果 hapi 服务器过载 它会做什么 是否有类似的情况太忙js https www npmjs com package toobusy js通过快捷方式处理一些有错误的请求来防止服务器崩溃 是的 它嵌入在框架中 看看load关于连接set

随机推荐

  • Spring Data Rest @EmbeddedId 无法从 Post Request 构造

    我有一个 JPA 实体Person和一个实体Team 两者都由一个实体连接人与团队 该连接实体与以下对象保持多对一关系Person和一到Team 它有一个由 id 组成的多列键Person和Team 由 EmbeddedId 表示 为了将嵌
  • Endpoint 与 Windows 沉浸式项目版本 1 不兼容

    由于某种原因 我使用 添加服务引用 向导为 wcf 服务生成代码时出错 Custom tool warning No endpoints compatible with version 1 of windows immersive proj
  • 如何在复选框单击时选择 jqGrid 行?

    下面是我的 jqGrid 代码 我想选择行或突出显示当前行 当我checkjqgrid 行内的特定复选框 现在onSelectRow我正在检查复选框 var xmlDoc parseXML xml configDiv empty div w
  • 是否可以让“命名构造函数”返回私有构造的、不可移动、不可复制的 std::Optional

    我主要从事不允许抛出异常的系统级 C 项目 但 理所应当 强烈鼓励使用 RAII 现在 我们使用许多 C 程序员熟悉的臭名昭著的技巧来处理构造函数失败的问题 例如 简单的构造函数 然后调用bool init Args 做困难的事情 真正的构
  • 阿帕奇的条件

    I have KOHANA ENV环境变量设置为DEVELOPMENT例如 现在有一组规则 仅当该 var 设置为PRODUCTION 打开 mod deflate 设置过期标头默认值 关闭 ETag 等 例如 if KOHANA ENV
  • 如何在 pyOpenSSL 中获取 DTLS 的当前密码

    我需要在 pyOpenSSL 中获得 DTLS 协议的协商密码 我成功地为 TCP 套接字做到了这一点 但当涉及到数据报时 情况就不那么明显了 请提供 C 或 Python 语言的示例 这是我到目前为止所尝试过的 import socket
  • Microsoft Excel 会破坏 .csv 文件中的变音符号?

    我正在以编程方式将数据 使用 PHP 5 2 导出到 csv 测试文件中 示例数据 Num ro 1 注意带重音的 e 数据是utf 8 无前置 BOM 当我在 MS Excel 中打开此文件时 显示为Num ro 1 我可以在文本编辑器
  • JDA - 如何等待下一条消息

    我正在使用 JDA 制作一个不和谐的机器人 我想知道如何等待消息 像这样的东西 import net dv8tion jda api events message guild GuildMessageReceivedEvent import
  • Java 中的绑定是什么 - 术语

    我知道什么是静态绑定和动态绑定 所以我的问题与此无关 让我们看看静态绑定是怎么说的this 1 Java中的静态绑定发生在编译时 而动态绑定发生在编译时 绑定发生在运行时期间 2 私有方法 最终方法和静态方法以及变量使用静态绑定并由编译器绑
  • 以管理员身份运行时 DriveInfo.GetDrives() 不返回映射驱动器

    我正在创建一个 WPF 应用程序 除其他外 它还应该检查多个映射驱动器是否存在 代码很简单 DriveInfo systemDrives DriveInfo GetDrives foreach DriveInfo i in systemDr
  • std::byte 可以替代 std::aligned_storage 吗?

    C 17引入了一种新类型 std byte 所以现在我们终于有了一个一等公民类型来表示内存中的字节 除了在标准中是一个新颖的东西之外 C 的对象创建 生命周期的开始和结束 别名等规则在大多数情况下都相当复杂且不直观 所以每当我觉得std b
  • PHP/curl:namelookup_time/dns 减慢请求

    编辑 找到部分原因 见底部 我正在从 php ini 进行标准的curl 调用 但是 名称解析期间似乎出现了挂断 在我的 OSX 机器上 对于同一子网的此查询和其他查询 namelookup time 始终超过 1 秒 我的子网上的一台 L
  • Jmeter 中合理同时运行的最大线程数是多少?

    我想使用尽可能多的线程 以使用更少的计算机 但又不让瓶颈出现在客户端 只要使用得当 JMeter 就可以模拟非常高的负载 别听都市传说这说明 JMeter 无法处理高负载 现在至于答案 取决于 你的机器功率 你的jvm是32位还是64位 你
  • 防止 python 关闭 Windows

    我想防止 Windows xp 和 7 关闭 为此 我似乎必须拦截 WM QUERYENDSESSION 消息并返回 False 好吧 我必须纠正我的说法 这个程序在 Windows 7 下工作正常 但在 Windows 7 嵌入式标准 S
  • 如何使用 R 将 Grib1 转换为 Netcdf?

    我刚刚下载了一些 Grib 格式的气候数据 我想使用 R 将其转换为 NetCDF 格式 此外 由于该文件由不同的变量组成 我想一次将一个变量提取到单独的文件中 如果没有您的特定文件 很难回答这个问题 你应该考虑生产可重复的examples
  • 如何替换两个符号之间所有出现的字符串?

    我正在 Javascript 上使用 RegEx 这就是我遇到的问题 我有一个简单的字符串 例如 span style font family Verdana size 3D quot 2 quot http 72 55 146 142 8
  • cmd ftp mput - jpeg 文件与原始文件不同

    目前我正在为 ftp s 执行此批处理 打开192 1 2 3 USER密码cd 文件夹 液晶屏 c 文件夹 promptmkdir 20140730光盘 20140730 输入 jpeg quit 在测试过程中 我尝试输入 10 个文件
  • 使用 Javascript 通过单击按钮来切换下拉列表的启用和禁用?

    我使用以下 JavaScript 来禁用 ASP NET 页面中的下拉列表 当我单击按钮时会调用该列表 function disableDropDown DropDownID document getElementById DropDown
  • 在 DBF 中搜索并更新记录

    Code usr bin python db dbf Dbf MEST2 DBF LINE TO UPDATE rec db 0 PROEST IS A field of my dbf I m assigning 1 to this fie
  • hapijs joi 验证,验证大于其他属性的总和

    我想验证一个字段 familymemberCount 它应该大于等于其他字段 我尝试了下面的代码 但这不允许将 运算符与 Ref 一起使用 我们如何用其他值的总和进行验证 export const familyMemberRulesSche