У меня есть схема, которую я хочу проверить с помощью 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
?
1 ответ
Ключ сообщения 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!"})
Похожие вопросы
Новые вопросы
javascript
По вопросам программирования на ECMAScript (JavaScript / JS) и его различных диалектах / реализациях (кроме ActionScript). Включите все соответствующие теги в свой вопрос; например, [node.js], [jquery], [json] и т. д.