1.0.2 • Published 3 years ago

express-model-validation-middleware v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

express-model-validation-middleware

A middleware library for Express request validation based on model objects

Installation -

npm install express-model-validation-middleware --save

Features

Express model validation middleware is used a middlware in express js projects to validate API requests.

  • 10+ validations
  • All basic validations used in API requests covered.
  • All custom error messages.
  • Easy to use with Javascript objects as models.
  • Custom status codes for errors.

How to use?

  • Create a node js an express server.
  • Create an API controller.
  • Create a model based on request body. And pass your defined error messages.
const User = {
    name:{
        "isString":"User name must be a string",
        "min-5":"User name must be atleat 5 characters long",
        "required":"Name is required"
    },
    email:{
        "isEmail":"Enter a valid email",
        "required":"Email is required"
    },
    password:{
        "min-6":"Password must be atleat 6 characters long",
        "max-12":"Atmost 12 character long password is allowed",
        "required":"Password is required",
        "isString":"Password must be a string"
    },
    section:{
        "required":"Section name is required"
    }
}
  • Import const {validateModel} = require('express-model-validation-middleware');
  • Pass validateModel as middleware in API controller with two arguments 1. the User model. 2. Status code you want in response.
app.route('/').post(validateModel(User, 400), (req,res)=>{
    res.json({message:"working"})
})
  • Enter API URL on postman and send a request body. Example -
{
    "name":"Joe",
    "email":"aashutoshsoni12gmail.com",
    "password":"Test@1234"
}
  • If there are no errors in request body as specified in Model, it'll execute the next function. Else, will through errors and status you passed in the middleware.
  • For this example, there were errors in the request object. They are throuwn in the format below, with status code of 400 Bad request.

    Response

{
  "name": [
    "User name must be atleat 5 characters long"
  ],
  "email": [
    "Enter a valid email"
  ],
  "section": [
    "Section name is required"
  ]
}

Validations

List of all the validations are as -

ValidatorUse case
requiredCheck if value is null or undefined
isStringValidate a string
min-10Set minimum length of characters, 10 being the length. Set it accordingly.
max-50Set maximum length of characters, 50 being the length. Set it accordingly.
contains-fooCheck if string has certain substring. It'll check if request string has foo present. Set it accordingly.
isArrayCheck for request field is array
isObjectCheck for request field is object
isDateValidates date in 03-22-2021 format
isObjectCheck for request field is object
equals-fooValidates requested value equals to passed value foo. Set accordingly.
isIntCheck for an integer
isUrlCheck for URL

Development

Want to contribute? Great! Feel free to mail me on aashutoshsoni12@gmail.com. Or visit my website aashutoshsoni.herokuapp.com