
Product
Socket Now Supports pylock.toml Files
Socket now supports pylock.toml, enabling secure, reproducible Python builds with advanced scanning and full alignment with PEP 751's new standard.
fastest-express-validator
Advanced tools
request validation middleware for express based on fastest-validator (testted with both express v4 and v5)
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'));
2.0.2
FAQs
request validation middleware for express
We found that fastest-express-validator demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
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.
Product
Socket now supports pylock.toml, enabling secure, reproducible Python builds with advanced scanning and full alignment with PEP 751's new standard.
Security News
Research
Socket uncovered two npm packages that register hidden HTTP endpoints to delete all files on command.
Research
Security News
Malicious Ruby gems typosquat Fastlane plugins to steal Telegram bot tokens, messages, and files, exploiting demand after Vietnam’s Telegram ban.