How to set custom error messages in @hapi/joi? How to set custom error messages in @hapi/joi? express express

How to set custom error messages in @hapi/joi?


You can try something like this with latest version of @hapi/joi package.

const Joi = require("@hapi/joi");const createProfileSchema = Joi.object().keys({  username: Joi.string()    .required()    .empty()    .min(5)    .max(20)    .messages({      "string.base": `"username" should be a type of 'text'`,      "string.empty": `"username" cannot be an empty field`,      "string.min": `"username" should have a minimum length of {#limit}`,      "string.max": `"username" should have a maximum length of {#limit}`,      "any.required": `"username" is a required field`    })});const validationResult = createProfileSchema.validate(  { username: "" },  { abortEarly: false });console.log(validationResult.error);

Detailed info can be found in docs:

https://github.com/hapijs/joi/blob/master/API.md#list-of-errors


You can try this

const Joi = require("@hapi/joi"); // as of v16.1.8const createProfileSchema = Joi.object().keys({  username: Joi.string()    .required()    .empty()    .min(5)    .max(20)    .error(errors=>{      errors.forEach(err=>{       switch(err.code){         case "string.empty":         err.message='Please insert username'         break         case "string.max":         err.message='username is not allowed to be empty'         break        }      })    return errors});