javascript - 包含其他对象的 Joi 验证器对象
问题描述
我在 req 正文中得到了这种类型的 json:
"customerDetails": {
"contact": {
"firstName": "",
"lastName": "",
},
"address": {
"addressSFID": "",
"cityAddress": "",
}
我试图使用这个模式:
customerDetails: Joi.object({
contact: Joi.object({
firstName: validateName(),
lastName: validateName(),
}),
address: Joi.object({
addressSFID: validateSfid(),
cityAddress: validateGeneralAddressDetail(),
})
}),
但它不起作用。没有抛出错误,但它没有按应有的方式验证字段
当它是两个独立的对象(里面的两个customerDetails
)
我应该使用什么语法?
解决方案
如果您正在编写一次架构,那么您不需要使用.keys()
. (keys)
在像这样向对象添加更多行时使用 .keys() :
Joi.object().keys({
contact:Joi.object().keys({
"firstName":Joi.string(),
"lastName": Joi.string()
}),
address:Joi.object().keys({
"addressSFID":Joi.string(),
"cityAddress": Joi.string()
})
})
推荐阅读
- node.js - 以分钟为单位的两个日期和时间之间的差异 [Javascript]
- ios - 没有抗锯齿的 UIFont
- css - 我的内部 CSS 不起作用
- bash - 下一行变高时打印当前行
- list - 这个二分搜索到底有什么作用?
- mysql - 如何在spring boot中连接到远程数据库
- php - 在 PHP 中哪个更快 INSERT INTO Mysql 或 Compare-Arrays?
- r - 数据帧列表 - 从每个数据帧中提取一行
- java - 如何使用 JAVA SQL 语句在每个 Apache ignite 缓存中创建表?
- sql-server - SQL Server 中的存储过程多次插入相同的数据