🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

fastest-express-validator

Package Overview
Dependencies
Maintainers
0
Versions
30
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

fastest-express-validator

request validation middleware for express

2.0.2
latest
Source
npm
Version published
Maintainers
0
Created
Source

fastest-express-validator

NPM Version Badge CI Build Badge Hits-of-Code Coverage Badge License Badge

request validation middleware for express based on fastest-validator (testted with both express v4 and v5)

Example

const app = require('express')();
const {
    RequestValidator,
    QueryValidator,
    DefaultRequestValidator,
} = require('fastest-express-validator');

const querySchema = {
    name: { type: "string", min: 3, max: 255 },
};

const customErrorHandler = (err, req, res, next) => {
    console.log('error at the customErrorHandler:');
    console.log(err);
    res.sendStatus(418);
}

const validationMiddleware = RequestValidator({
    // also you can pass the "body" and "params" fields
    query: querySchema,
});

const middlewareWithCustomHandler = RequestValidator(
    { query: querySchema },
    customErrorHandler,
);

const fastMiddleware = RequestValidator(
    { query: querySchema },
    null, // define a custom error handler if you want to

    /* you can pass some options for a fastest-validator instance
    it should implements a ValidatorConstructorOptions interface
    note that this package set a "useNewCustomCheckerFunction" option in true by default
    so you should override it to use a v1 syntax for built-in rules */
    { haltOnFirstError: true }
);

// also this package provides BodyValidator and ParamsValidator short validators
const shortQueryMiddleware = QueryValidator(
    querySchema,
    // also you can pass a custom error handler in a second argument,
    // also you can pass a ValidatorConstructorOptions in a third argument
);

app.get('/', validationMiddleware, (req, res) => {
    console.log('a query object is:');
    console.log(req.query);
    res.send('Hello World');
});

app.get('/custom', middlewareWithCustomHandler, (req, res) => {
    console.log('a query object at the custom route is:');
    console.log(req.query);
    res.send('Hello Custom');
});

app.get('/fast', fastMiddleware, (req, res) => {
    console.log('a query object at the fast route is:');
    console.log(req.query);
    res.send('It was fast');
});

app.get('/short', shortQueryMiddleware, (req, res) => {
    console.log('a query object at the short route is:');
    console.log(req.query);
    res.send('Hello Short');
});

// This middleware already have a default validation error handling behaviour -
// send 404 on params validation error
// and 422 (with error details at response body) on query and body validation error.
const defaultQueryValidationMiddleware = DefaultRequestValidator(
    { query: schema /* body, params */ },
    // you can pass a ValidatorConstructorOptions here
);
app.get('/default', defaultQueryValidationMiddleware, (req, res) => {
    console.log('a query object at the default route is:');
    console.log(req.query);
    res.send('Hello Default');
});

app.use((err, req, res, next) => {
    console.log('OMG!');
    console.error(err);
    res.status(500).send('Something broke!');
});

app.listen(2023, () => console.log('check it on http://localhost:2023?name=one'));

Keywords

express

FAQs

Package last updated on 03 Feb 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts