I have a joi schema like this
Joi.object({
name: Joi.string(),
language: Joi.string(),
birthday: Joi.date(),
age: Joi.number().integer()
})
The input can contain birthday
and age
at the same time or just one of the keys. If one of the keys does not exist, I want the missing key to be automatically added with the string "NULL"
like this
//input
{
"name": "Jane Doe",
"language": "de",
"birthday": "1960-06-27"
}
//modified to
{
"name": "Jane Doe",
"language": "de",
"birthday": "1960-06-27",
"age": "NULL"
}
Is there a way to automatically add a key with a default value, if the key is missing?
CodePudding user response:
Use any.default([value])
:
const schema = Joi.object({
name: Joi.string(),
language: Joi.string(),
birthday: Joi.date(),
age: Joi.number().integer().default(null)
});
console.log(schema.validate({
"name": "Jane Doe",
"language": "de",
"birthday": "1960-06-27"
}));
Output:
{
name: "Jane Doe",
language: "de",
birthday: Mon Jun 27 1960 01:00:00 GMT 0100 (Central European Standard Time),
age: null
}
I would prefer null
rather then a string "NULL"
because both date
and age
are not of type string
.