Steps to Implement Data Validation using joi

Step 1: Installation of joi module

You can install this package by using this command. 

npm install joi

Step 2: After installing multer you can check your joi version in command prompt using the command. 

npm ls joi

The Updated Dependencies in Package.json file

"dependencies": {
"joi": "^17.13.1",
}

Step 3: After that, you can just create a folder and add a file for example index.js, To run this file you need to run the following command. 

node index.js

Step 4: Import module

You need to include joi module in your file by using these lines. 

const Joi = require('joi');

Example: Below example demonstrates data validation using joi module in a node app.

Node
// Filename - index.js

const Joi = require('joi')

//User-defined function to validate the user
function validateUser(user)
{
    const JoiSchema = Joi.object({
    
        username: Joi.string()
                  .min(5)
                  .max(30)
                  .required(),
                  
        email: Joi.string()
               .email()
               .min(5)
               .max(50)
               .optional(), 
               
        date_of_birth: Joi.date()
                       .optional(),
                       
        account_status: Joi.string()
                        .valid('activated')
                        .valid('unactivated')
                        .optional(),
    }).options({ abortEarly: false });

    return JoiSchema.validate(user)
}

const user = {
    username: 'Pritish',
    email: 'pritish@gmail.com',
    date_of_birth: '2020-8-11',
    account_status: 'activated'
}

response = validateUser(user)

if(response.error)
{  
    console.log(response.error.details)
}
else
{
    console.log("Validated Data")
}

Note: In the above program abortEarly is set to false which makes sure that if there are multiple errors then all are displayed in the terminal. If it is set to true then the execution of the program will stop as soon as the first error is encountered and only that error will be displayed in the terminal.  

Steps to run the program: Run index.js file using below command: 

node index.js

Now, if no error occurs i.e. user data is validate, then following output will be produced:

Now, if we validate the user against the invalid data as shown below, then the following output will be produced: 

JavaScript
 var user = {
     username: 'GH',
     email: 'demo@',
     date_of_birth: '2020-20-48',
     account_status: 'abcd'
 };
If abortEarly is set to true the following output will be produced :

So this is how you can validate data using joi module. There are other modules in the market for validation like express-validator, etc.
 



How to Validate Data using joi Module in Node.js ?

Joi module is a popular module for data validation. This module validates the data based on schemas. There are various functions like optional(), required(), min(), max(), etc which make it easy to use and a user-friendly module for validating the data.

Similar Reads

Introduction to joi

It’s easy to get started and easy to use.It is widely used and popular module for data validation.It supports schema based validation....

Approach

To validate data in Node.js using the Joi module, define a schema with specific validation rules. Use schema.validate(data) method to check if the data conforms to these rules, handling any validation errors that arise....

Steps to Implement Data Validation using joi

Step 1: Installation of joi module...