【发布时间】:2021-03-11 20:31:54
【问题描述】:
我已经定义了这个架构。
schema = Joi.object({
username: Joi.string().min(5).max(32).required().label('Username'),
password: Joi.string().min(8).max(50).required().label('Password')
});
我知道我需要同时传递有效的用户名和密码值才能避免错误。
但是,我一次只需要针对此架构验证一个字段。 这意味着,如果我传递了一个有效的用户名,我希望这个模式不返回任何错误。
这是我所做的:
validateOneField(name, value){
// create an object dynamically
const obj = { [name] : value };
// here I need to get the schema for either username or password depending upon name argument.
// how can I create a schema dynamically here?
// example:
const schema = Joi.object({ this.schema[name] }); // I know this won't work!
// and validate only single value
const { error } = schema.validate(obj);
console.log(error);
}
还有其他方法可以访问架构,例如:this.schema[username] 或 this.schema[password]?
提前谢谢你!
【问题讨论】:
-
在什么情况下应该验证密码?您能否提供一些您的架构应该通过和失败的示例?
-
我正在验证“onChange”事件的输入字段!此评论是否满足您的好奇心?
标签: javascript ecmascript-6 joi