首先你好,
我使用 Node、Express 和 Mongoose 开发 API。我还使用 Joi 参数验证来验证我的参数,但是当对象内缺少必需的参数时,我遇到错误消息问题。
参见下面的示例:
我的param-validation.js
body: {
nameBusiness: Joi.string().required(),
street: Joi.string().required(),
cityName: Joi.string().required(),
zipCode: Joi.number().required(),
account: Joi.object({
birthday: Joi.number().required(),
firstName: Joi.string().required(),
lastName: Joi.string().required(),
email: Joi.string().regex(/^[^\s@]+@[^\s@]+\.[^\s@]+$/).required(),
}).required()
}
我的问题是,当我发出没有“firstName”字段的请求时,错误是:
“\”firstName\”是必需的
,但我认为我不清楚错误应该是:“\”account.firstName\”是必需的
。
有人知道 Joi 如何显示此错误吗?
最佳答案
就您而言,默认消息将与您提到的相同。对于诸如“account.firstName”之类的完整路径,您必须在错误对象中查找路径键。
您可以在“validationErrorObject”中找到他的属性,例如:-
if(validationResult.error){
validationResult.error.details.forEach(function(error){
if(error.path.length > 1){
console.log(error.path.join("."));
}else{
console.log(error.path[0]);
}
});
}
关于node.js - Joi 验证 对象内所需参数的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50970962/