I'm using Joi package for server side Validation.
I want to check if a given string is in a given list or if it is not in a given list.(define black list or white list for values)
sth like an "in" or "notIn" function.how can I do that?
var schema = Joi.object().keys({ firstname: Joi.string().in(['a','b']), lastname : Joi.string().notIn(['c','d']), });
You are looking for the valid
and invalid
functions.
v16: https://hapi.dev/module/joi/api/?v=16.1.8#anyvalidvalues---aliases-equal
v17: https://hapi.dev/module/joi/api/?v=17.1.1#anyvalidvalues---aliases-equal
As of Joi v16 valid
and invalid
no longer accepts arrays, they take a variable number of arguments.
Your code becomes
var schema = Joi.object().keys({ firstname: Joi.string().valid(...['a','b']), lastname: Joi.string().invalid(...['c','d']), });
Can also just pass in as .valid('a', 'b')
if not getting the values from an array (-:
How about:
var schema = Joi.object().keys({ firstname: Joi.string().valid(['a','b']), lastname : Joi.string().invalid(['c','d']), });
There are also aliases: .allow and .only
and .disallow and .not
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