我正在尝试覆盖Joi
中的自定义错误消息。
假设我有一个如下的模式。
const joiSchema = Joi.object({
name: Joi.string().required(),
email: Joi.string().email().required()
})
try{
const schema = joiSchema.validateAsync(req.body);
}catch(error){
error.details.map((detail) => {
// customize error message
});
}
我需要发送如下错误消息。
{ errors: { name: "Name is Required.", email: "Email is Required." } }
如何在fieldName
的{{1}}数组中获得与name
相似的details
。
答案 0 :(得分:0)
我找到了以下解决方法。
const errors = [];
err.details.forEach((detail) => {
const currentMessage = detail.message;
detail.path.forEach((value) => {
errors.push({ [value]: currentMessage });
});
});
答案 1 :(得分:0)
您可以得到错误并像这样处理
catch(error){
var data = data.details;
var message = data[0].message; // you can get other fields also like this
var json={"status":"0","message":message,"data":{}}; // you can customize your json response
}
答案 2 :(得分:0)
以下方法也有帮助
const errorList = [...errors];
errors.forEach((error, index) => {
const tmpError = { ...error };
tmpError.message = "Your custom error message";
errorList[index] = tmpError;
});
return errorList;