Joi验证两个字段连接的长度

Joi validation length of concatenation of two fields

我必须验证两个字段的总长度。

const schema = {
  body: Joi.object().keys({
    fieldOne: Joi.string().required()
    fieldTwo: Joi.string().required()
  })
};

我要检查的是

`${fieldOne || ''} ${fieldTwo || ''}`.trim().length < 30 

这是可以用 Joi 实现的吗?

您可以创建第三个字段。这是两者的连接,最大长度为 30。因此,验证各个字段和两者的组合。

myObject.fieldOneTwo = `${fieldOne || ''} ${fieldTwo || ''}`.trim()
const schema = {
  body: Joi.object().keys({
    fieldOne: Joi.string().required(),
    fieldTwo: Joi.string().required()
    fieldOneTwo: Joi.string().limit(30, 'utf8').required()
  })
};

或者,您可以将第三个字段设置为其他两个字段的长度,并检查它是一个小于 30 的数字。