gpt4 book ai didi

joi - 指定字段名称而不是 "value"

转载 作者:行者123 更新时间:2023-12-04 13:37:14 26 4
gpt4 key购买 nike

我必须逐个验证值,而不是为多个值传入整个架构。基于此处的单值验证文档

https://hapi.dev/module/joi/

和这个示例代码

const validator: AnySchema = Joi.string().valid('foo', 'bar').required();
const validationResult: ValidationResult = validator.validate('invalid');
const validationError: ValidationError = validationResult.error;

if (validationError) {
throw validationError;
}

该代码将抛出错误并显示以下错误消息

ValidationError: "value" must be one of [foo, bar]



有没有简单的方法可以替换 "value"有具体的名字吗?所以当我想验证 环境错误信息可能是

ValidationError: "environment" must be one of [development, production, test]



还是只有在一次验证多个值时才有可能?

最佳答案

any.label(name) 您可以使用并设置自定义标签的方法,该标签也将显示在错误消息中:

any.label(name)

Overrides the key name in error messages.

  • name - the name of the key.
const schema = {
first_name: Joi.string().label('First Name')
};

你可以简单地做:
const validator: AnySchema = Joi
.string()
.label('Foo/Bar') // Change tha label using label method
.valid('foo', 'bar')
.required();

const validationResult: ValidationResult = validator.validate('invalid');
const validationError: ValidationError = validationResult.error;

if (validationError) {
throw validationError;
}
将输出:
ValidationError: "Foo/Bar" must be one of [foo, bar]

关于joi - 指定字段名称而不是 "value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61169665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com