javascript - Object.and() 的 Costom Joi 验证消息
问题描述
我有一个要使用Ojbect.and()
.
const schema = Joi.object().keys({
username: Joi.string().alphanum().min(3).max(30).required(),
password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/),
access_token: [Joi.string(), Joi.number()],
birthyear: Joi.number().integer().min(1900).max(2013),
email: Joi.string().email(),
nickname: Joi.string()
}).and('username', 'birthyear', 'nickname').without('password', 'access_token');
默认情况下,它会返回一个验证错误消息,例如。
"\"value\" contains [username] without its required peers [birthyear, nickname]"
我希望它返回一个自定义错误消息,例如。
Username, Birthyer and Nick name all are required!
对于自定义消息说nickname
我会做类似下面的事情
Joi.string().messages({ 'string.base' : "Nickname should be string!"})
所以,我在下面尝试过,但它不起作用。
const schema = Joi.object().keys({
username: Joi.string().alphanum().min(3).max(30).required(),
password: Joi.string().regex(/^[a-zA-Z0-9]{3,30}$/),
access_token: [Joi.string(), Joi.number()],
birthyear: Joi.number().integer().min(1900).max(2013),
email: Joi.string().email(),
nickname: Joi.string()
})
.and('username', 'birthyear', 'nickname').without('password', 'access_token')
.messages({ 'Object.and' : "Username, Birthyear and Nick name all are required!"})
Object.and
我怎样才能对验证错误消息做同样的事情?
解决方案
消息键string.base
覆盖字符串验证消息
在您的情况下,您应该使用object.and
const schema = Joi.object().keys({
username: Joi.string().alphanum().min(3).max(30).required(),
password: Joi.string().pattern(/^[abc]+$/),
access_token: [Joi.string(), Joi.number()],
birthyear: Joi.number().integer().min(1900).max(2013),
email: Joi.string().email(),
nickname: Joi.string()
})
.and('username', 'birthyear', 'nickname').without('password', 'access_token')
.messages({ 'object.and' : "Username, Birthyear and Nick name all are required!"})
推荐阅读
- php - 在客户地址表magento 2中两次保存相同的地址
- c# - 无法将 long 类型转换为 T,这里 T 是 Enum 的值
- excel - 我需要一个解决方案来从产品表中选择正确的费率并将过滤后的费率粘贴到预期费率结果表
- java - 如何在要支持的 QPS 的基础上对 Kafka Consumer 进行节流?
- python - 在字符串中搜索逗号(,),如果存在逗号,则在 python 中打印逗号之后的直接单词
- caffe - 如何在 Caffe 中实现 CNN 集合?
- pytorch - PyTorch 将运算符映射到函数
- ruby - 如何通过 ruby 从单页应用程序中读取数据
- samsung-smart-tv - 无法将应用程序添加到三星智能电视模拟器
- mysql - 通过类似于 arg 的标签获取 wp 帖子 - wp db 查询