buildFieldSchema(fieldConfig) { switch (fieldConfig.type) { case 'integer': { let schema = Joi.number().integer(); if (fieldConfig.min) { schema = schema.min(fieldConfig.min); } if (fieldConfig.max) { schema = schema.max(fieldConfig.max); } if (fieldConfig.required) { schema = schema.required(); } return schema; } case 'select': { return Joi.any().valid(fieldConfig.options); } } }
app.post('/', (req, res) => { console.log(req.body); const schema = Joi.object().keys({ fname: Joi.string().min(2).max(20).required(), lname: Joi.string().min(2).max(20).required(), age: Joi.number().min(18).max(100).required(), email: Joi.string().trim().email().required(), password: Joi.string().min(5).max(20).required(), }); Joi.validate(req.body, schema, (err, result) => { if (err) { console.log(err); res.send('An Error Has been Occured!'); } console.log(result); res.send('Successfully Posted The data.'); }); });
}, params: { id: joi.number().integer().min(1).max(100)