Ich bin auf ein Problem (oder was ich glaube, dass eine) mit Joi Validierung. Ich versuche, einem nicht vorhandenen Schlüssel einen Wert zuzuweisen, wenn dieser als Teil des Anfragetexts übergeben wurde.Joi-Validierung Standard als leeres Objekt
So zum Beispiel:
parameters: Joi.object().keys({
keyA: Joi.string().allow('').allow(null).default(null),
keyB: Joi.object().keys({
b1: Joi.string(),
b2: Joi.string(),
b3: Joi.object().keys({
b3_1: Joi.string(),
b3_2: Joi.string(),
b3_3: Joi.string()
})
}).default({}),
keyC: Joi.object().keys({
c1: Joi.number(),
c2: Joi.number(),
c3: Joi.boolean(),
c4: Joi.boolean()
}).default({}),
keyD: Joi.object().keys({
d1: Joi.number(),
d2: Joi.number()
}).default({}),
keyE: Joi.object().keys({
e1: Joi.number()
}).default({})
}).allow(null)
So spezifisch zu sein, wenn ich in passieren waren: Augen:
{
keyA: "foo",
keyD: {
d1: 21.9,
d2: 21.1
},
keyE: {
e1: 42
}
}
würde ich dieses
{
keyA: "foo",
keyB: {},
keyC: {},
keyD: {
d1: 21.9,
d2: 21.1
},
keyE: {
e1: 42
}
}
Mit im Gegenzug: auf die leeren Objekte. Was fehlt mir bei der Joi.default() Methode? Übertreibe ich, wofür Joi bestimmt ist?
Beachten Sie, dass ich keine Validierungsfehler sehe - ich bekomme einfach nicht das gewünschte Ergebnis – bneigher