仅验证更大的 Joi 模式的一个字段
Validate only one single field of a bigger Joi schema
我想使用 Joi
进行表单字段验证,并希望坚持使用一个大架构对象来验证整个表单,但我想 运行 在一个表单字段之后进行单项验证已更改 - 即在第一个表单字段收到值后,我不想验证完整的表单,而只想更新一个字段。我正在设想
const schema = Joi.object({
username: Joi.string()
.alphanum()
.min(3)
.max(30)
.required(),
password: Joi.string()
.pattern(new RegExp('^[a-zA-Z0-9]{3,30}$'))
.required(),
});
const validationResult = schema.username.validate('Tommy');
这可能吗?
是的,通过将用户名模式提取到单独的模式,如下所示:
const username_schema = Joi.string()
.alphanum()
.min(3)
.max(30)
.required();
const schema = Joi.object({
username: username_schema,
password: Joi.string()
.pattern(new RegExp('^[a-zA-Z0-9]{3,30}$'))
.required(),
});
const validationResult = username_schema.validate('Tommy');
我想使用 Joi
进行表单字段验证,并希望坚持使用一个大架构对象来验证整个表单,但我想 运行 在一个表单字段之后进行单项验证已更改 - 即在第一个表单字段收到值后,我不想验证完整的表单,而只想更新一个字段。我正在设想
const schema = Joi.object({
username: Joi.string()
.alphanum()
.min(3)
.max(30)
.required(),
password: Joi.string()
.pattern(new RegExp('^[a-zA-Z0-9]{3,30}$'))
.required(),
});
const validationResult = schema.username.validate('Tommy');
这可能吗?
是的,通过将用户名模式提取到单独的模式,如下所示:
const username_schema = Joi.string()
.alphanum()
.min(3)
.max(30)
.required();
const schema = Joi.object({
username: username_schema,
password: Joi.string()
.pattern(new RegExp('^[a-zA-Z0-9]{3,30}$'))
.required(),
});
const validationResult = username_schema.validate('Tommy');