Socket
Socket
Sign inDemoInstall

express-json-validator-middleware

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-json-validator-middleware - npm Package Compare versions

Comparing version 0.0.5 to 0.0.6

README.md

4

package.json
{
"name": "express-json-validator-middleware",
"version": "0.0.5",
"description": "An Express middleware to validate requests against JSON Schema",
"version": "0.0.6",
"description": "An Express middleware to validate requests against JSON Schemas",
"main": "src/index.js",

@@ -6,0 +6,0 @@ "scripts": {

@@ -5,22 +5,27 @@ var Ajv = require('ajv');

});
var localize = require('ajv-i18n');
/**
* Express middleware for validating requests
*
* @param {Object} options
* @returns
*/
function validate(options) {
return function (req, res, next) {
let validationErrors = [];
var validationErrors = {};
Object.keys(options).forEach(function (requestProperty) {
let schema = options[requestProperty];
let validate = ajv.compile(schema);
let validateFunction = ajv.compile(schema);
let valid = validate(req[requestProperty]);
var valid = validateFunction(req[requestProperty]);
if (!valid) {
validationErrors.push(valid.errors);
validationErrors[requestProperty] = validateFunction.errors;
}
});
if (validationErrors) {
next(new ValidationError(localize.en(validate.errors)));
if (Object.keys(validationErrors).length != 0) {
next(new ValidationError(validationErrors));
} else {

@@ -32,7 +37,20 @@ next();

/**
* Validation Error
*
* @class ValidationError
* @extends {Error}
*/
class ValidationError extends Error {
/**
* Creates an instance of ValidationError.
* @param {any} validationErrors
*
* @memberOf ValidationError
*/
constructor(validationErrors) {
super();
this.name = 'JsonSchemaValidation';
this.message = 'express-jsonschema: Invalid data found';
this.name = 'JsonSchemaValidationError';
this.validationErrors = validationErrors;

@@ -39,0 +57,0 @@ }

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc