Tôi có một đối tượng có tên khóa mà tôi không thể biết - chúng được tạo bởi người dùng. Tuy nhiên tôi biết giá trị của chúng (khóa) sẽ lưu trữ, và chúng (giá trị) sẽ là chuỗi ISO. Làm cách nào để xác thực các giá trị đó? Và, tùy, làm thế nào để xác nhận phím uknown đối tượng, ví dụ:Xác thực đối tượng Joi: Cách xác thực giá trị với các tên khóa không xác định?
key: Joi.string().min(2).max(25)
Những gì tôi đã cố gắng dựa trên Joi tài liệu API:
Another benefits of using Joi.object([schema]) instead of a plain JS object is >that you can set any options on the object like allowing unknown keys, e.g:
const schema = Joi.object({ arg: Joi.string().valid('firstname', 'lastname', 'title', 'company', 'jobtitle'), value: Joi.string(), }).pattern(/firstname|lastname/, Joi.string().min(2));
Những gì tôi hiểu từ ví dụ là arg
phím đại diện cho 's key
và value
đại diện cho nó là value
.
dụ của tôi:
campaign: Joi.object({
arg: Joi.string().valid('unknown'),
value: Joi.date().iso(),
}).pattern(/unknown/, Joi.string().min(2).max(25))
đầu vào của tôi;
campaign: { g_ad_adwords: "2017-01-19T11:33:26.205Z" }
lỗi của tôi:
"campaign" fails because ["g_ad_adwords" is not allowed]