我正在使用服务器的nodejs / typescript堆栈创建某些内容,并且尝试定义自定义的通用错误消息,而不是按字段的消息。像这样:
> 0
如您所见,我正在尝试在自定义消息中使用变量/值。我是根据celebration / joi错误中出现的错误条目获得“键”的,就像这样:
routes.post(
'/points',
upload.single('image'),
celebrate({
body: Joi.object().keys({
name: Joi.string().required(),
email: Joi.string().required().email(),
whatsapp: Joi.number().required(),
latitude: Joi.number().not(0).required(),
longitude: Joi.number().not(0).required(),
city: Joi.string().required(),
uf: Joi.string().required().max(2),
items: Joi.string().required()
}),
}, {
abortEarly: false,
messages: {
'string.empty':'{context.label} cant be empty!'
}
}),
pointsController.create
);
是否可以做类似的事情? 该消息没有像我那样“解析” {context.label}。我的意思是,这是在黑暗中拍摄的照片,因为即使这样的东西得到了支持,我也找不到任何地方。
答案 0 :(得分:2)
您可以使用{#label}
实现您想要的目标。
尝试:
.messages({
'string.empty': '{#label} cant be empty!',
'any.required': '{#label} is a required field for this operation'
})
,对于所有其他类型,依此类推。
也可以类似地访问其他值。例如,如果要概括字符串min / max的错误消息:
.messages({
'string.min': '{#label} should have a minimum length of {#limit}'
})
在这里,为字符串创建架构时设置了限制(最小值)。