npm.io
1.0.3 • Published 3 years ago

ajv-validate-middleware

Licence
ISC
Version
1.0.3
Deps
3
Size
7 kB
Vulns
0
Weekly
0

AjvValidateMiddleware

Provides Ajv validation services to Express Routes

Usage:

const AjvValidateMiddleware = require("ajv-validate-middleware");

const validateMiddleware = new AjvValidateMiddleware();

const express = require('express');
const app = express();

validateMiddleware.createSchema({
    user: {
        type: "object",
        properties: {
            firstName: {
                type: "string",
            },
            lastName: {
                type: "string",
            },
            email: {
                type: "string",
                format: "email",
            },
        },
        required: ["firstName", "lastName", "email"],
        errorMessage: {
            type: "Should be an Object",
            required: {
                email: "Email is required",
                firstName: "firstName is required",
                lastName: "lastName is required",
            },
            properties: {
                email: "A valid email is required",
            },
        },
    },
});

app.use(express.json())

app.post('/', validateMiddleware.validate('body', 'user'))

app.use((error, req, res, next) => {
    res.status(400).send(error)
})

app.listen(3000, () => {
    console.log('Express is listening... Talk!')
})

Kind: global class

ajvValidateMiddleware.validate ⇒ function

Validate Usage:

For query params: router.post('/:userId', validate('params', 'mySchema'))

For json body: router.post('/', validate('body', 'mySchema'))

Errors: Validation errors are passed to next express handler

Kind: instance property of AjvValidateMiddleware
Returns: function - (req, res, next)

Param Type
reqProperty String
schemaName String

ajvValidateMiddleware.createSchema(schema)

Creates ajv function from schema and pushes to validators

Kind: instance method of AjvValidateMiddleware

Param Type
schema Object

ajvValidateMiddleware.addFormat(formatName, formatSchema)

Adds a format to validator

Kind: instance method of AjvValidateMiddleware

Param Type
formatName String
formatSchema Object