【发布时间】:2020-06-08 10:35:31
【问题描述】:
我正在使用 nodejs/typescript 堆栈为服务器创建一些东西,并且我正在尝试定义自定义通用错误消息而不是每个字段消息。像这样的:
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
);
如您所见,我正在尝试在自定义消息中使用变量/值。我根据来自Celebrate/joi错误的错误条目得到了那个“钥匙”,就像这样:
{
message: ' cant be empty!',
path: [ 'items' ],
type: 'string.empty',
context: { label: 'items', value: '', key: 'items' }
}
如果有办法做这样的事情? 该消息没有像我想象的那样“解析” {context.label} 。我的意思是,这是在黑暗中拍摄的,因为如果完全支持这样的事情,我找不到任何地方。
【问题讨论】:
标签: node.js typescript validation joi