I am trying to add a validation for array in a POST request
Joi.array().items(Joi.string()).single().optional()
I need to allow null values in the payload. Can you please tell me how this can be done ?
That's why you explicitly have to allow empty strings like this: Joi. string(). allow('') .
If you want to allow the array to be null use:
Joi.array().items(Joi.string()).allow(null);
If you want to allow null or whitespace strings inside the array use:
Joi.array().items(Joi.string().allow(null).allow(''));
Example:
const Joi = require('joi');
var schema = Joi.array().items(Joi.string()).allow(null);
var arr = null;
var result = Joi.validate(arr, schema);
console.log(result); // {error: null}
arr = ['1', '2'];
result = Joi.validate(arr, schema);
console.log(result); // {error: null}
var insideSchema = Joi.array().items(Joi.string().allow(null).allow(''));
var insideResult = Joi.validate(['1', null, '2'], insideSchema);
console.log(insideResult);
the very short answer is:
name: Joi.string().allow(null)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With