【发布时间】:2018-07-25 20:40:06
【问题描述】:
我正在使用 hapi js 和 couchbase 开发一个 API。我正在使用 log4js 记录错误。
{
// Add a user level
method: 'POST',
path: '/api/v1/userlevel',
config: {
handler: (request, reply) => {
const userlevel = new Userlevel(request.payload);
userlevel.save((err) =>{
if(err) {
return reply({
status: 400,
message: err.message
}).code(400);
// logger.error(err);
}
// logger.debug(reply);
return reply(userlevel).code(201);
});
},
validate: {
payload: {
group_id: Joi.string(),
name: Joi.string(),
status: Joi.string(),
index_id: Joi.number(),
device_id: Joi.string(),
created_at: Joi.string(),
updated_at: Joi.string(),
sys_version: Joi.string()
}
}
}
}
当我使用无效数据向此端点发送 POST 请求时,它显示错误
POST 请求
{
"group_id" : "test1",
"name" : "test1",
"status":"test1",
"index_id":1,
"device_id":"test1",
"created_at":7,
"updated_at":7,
"sys_version":7
}
错误
{"statusCode":400,"error":"Bad Request","message":"child \"created_at\" fails because [\"created_at\" must be a string]","validation":{"source":"payload","keys":["created_at"]}}
我需要记录此错误消息。我试图找到这条消息产生的地方。但我找不到它。请帮忙。提前谢谢你。
【问题讨论】:
-
在您的 POST 请求中,
created_at是number,因此 JOI 验证中的错误。 -
我是故意这样做的。请再次阅读主题。
-
OP 正在发送无效数据,因为 OP 想要记录错误。
-
logger.error(err)应该在return之前记录 -
已经试过了。这不是“joi”产生的错误