Types
String
someField: Joi.string()
Unique string
someField: Joi.string()[required]().meta({unique: true}),
String with enums
someField: Joi.string().valid('private', 'public','blocked'),
Number
someField: Joi.number()
Pointer
someField: Joi.objectId().meta({ type: 'ObjectId', ref: 'users', displayKey: 'email' }),
Date
someField: Joi.date()
Boolean
someField: Joi.boolean()
Arrays
someField: Joi.array()
Arrays of String
someField: Joi.array().items(Joi.string())
Arrays of Reference
someField: Joi.array().items(Joi.string().meta({ type: 'ObjectId', ref: 'rules', displayKey: 'name' })),
Object
someField: Joi.object({ user: Joi.objectId().meta({ type: 'ObjectId', ref: 'users', displayKey: 'email' }), rules: Joi.array().items(Joi.string().meta({ type: 'ObjectId', ref: 'users', displayKey: 'name'})), blockAll: Joi.boolean() })
Allow null?
verifyExpires: Joi.date().allow(null)
Default Value?
status: Joi.string().meta({ default: 'pending'})
Last updated
Was this helpful?