如何解决Joi 不会将验证错误写入日志
我使用 Joi 进行输入验证。我对 Joi 的错误响应很满意,但我想打印它以记录日志。 我知道在“选项”部分中处理失败的选项,例如:
options: {
response: {
failAction: async (req,h,err) => {
if(err) {
console.log(`Server error: ${err}`)
}
}
}
}
但由于我有很多 API,我不想为每个 API 添加一个处理程序。 每当验证失败时,我都会从 Joi 框架中搜索此日志。
Joi 版本:17.1.1
解决方法
最后在我的 server.js 文件中添加以下代码成功:
server.events.on('response',function (request) {
if (request.response !== undefined && request.response.source !== undefined && request.response.source.validation !== undefined &&
request.response.source.validation.source === "payload") {
logger.error(request.response.source.validation);
}
});
If 语句只需要处理 Joi 验证错误而不是打印所有响应错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。