Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

express-validator

Package Overview
Dependencies
Maintainers
1
Versions
121
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-validator - npm Package Compare versions

Comparing version 1.0.1 to 2.0.0

93

lib/express_validator.js

@@ -16,3 +16,3 @@ /*

* 2. To sanitize parameters, use `req.sanitize(param_name)`
* e.g. req.sanitize('large_text').xss();
* e.g. req.sanitize('param1').toBoolean();
* e.g. req.sanitize('param2').toInt();

@@ -24,7 +24,4 @@ *

var Validator = require('validator').Validator,
Filter = require('validator').Filter;
var validator = require('validator');
var validator = new Validator();
var expressValidator = function(options) {

@@ -43,4 +40,25 @@ options = options || {};

var sanitizers = ['trim', 'ltrim', 'rtrim', 'escape', 'whitelist',
'blacklist'];
var sanitize = function(request, param, value) {
var methods = {};
Object.keys(validator).forEach(function(methodName) {
if (methodName.match(/^to/) || methodName in sanitizers) {
methods[methodName] = function() {
var arguments = Array.prototype.slice.call(arguments);
var args = [value].concat(arguments);
var result = validator[methodName].apply(validator, args);
request.updateParam(param, result);
}
}
});
return methods;
}
function checkParam(req, getter) {
return function(param, fail_msg) {
return function(param, failMsg) {

@@ -73,3 +91,3 @@ var value;

validator.error = function(msg) {
var errorHandler = function(msg) {
var error = _options.errorFormatter(param, msg, value);

@@ -87,3 +105,31 @@

}
return validator.check(value, fail_msg);
var methods = [];
Object.keys(validator).forEach(function(methodName) {
if (!methodName.match(/^to/) && !(methodName in sanitizers)) {
methods[methodName] = function() {
var arguments = Array.prototype.slice.call(arguments);
var args = [value].concat(arguments);
var isCorrect = validator[methodName].apply(validator, args);
if (!isCorrect) {
errorHandler(failMsg || 'Invalid value');
}
return methods;
}
}
});
methods['notEmpty'] = function() {
return methods.isLength(1);
}
methods['len'] = function() {
return methods.isLength.apply(methods.isLength, Array.prototype.slice.call(arguments));
}
return methods;
}

@@ -126,12 +172,13 @@ }

req.checkHeader = function(header, fail_msg) {
var to_check;
if (header === 'referrer' || header === 'referer') {
to_check = this.headers.referer;
} else {
to_check = this.headers[header];
}
return validator.check(to_check || '', fail_msg);
};
req.checkHeader = checkParam(req, function(header) {
var toCheck;
if (header === 'referrer' || header === 'referer') {
toCheck = this.headers.referer;
} else {
toCheck = this.headers[header];
}
return toCheck || '';
});
req.onValidationError = function(errback) {

@@ -156,10 +203,3 @@ req.onErrorCallback = errback;

req.filter = function(param) {
var self = this;
var filter = new Filter();
filter.modify = function(str) {
this.str = str;
// Replace the param with the filtered version
self.updateParam(param, str);
};
return filter.sanitize(this.param(param));
return sanitize(this, param, this.param(param));
};

@@ -176,3 +216,2 @@

module.exports = expressValidator;
module.exports.Validator = Validator;
module.exports.Filter = Filter;
module.exports.validator = validator;

@@ -8,5 +8,6 @@ {

"@orfaust",
"@zero21xxx"
"@zero21xxx",
"Roman Kalyakin <roman@kalyakin.com>"
],
"version": "1.0.1",
"version": "2.0.0",
"homepage": "https://github.com/ctavan/express-validator",

@@ -22,6 +23,6 @@ "repository": {

"engines": {
"node": "*"
"node": ">= 0.8"
},
"dependencies": {
"validator": "2.0.0"
"validator": "3.1.0"
},

@@ -28,0 +29,0 @@ "devDependencies": {

@@ -6,3 +6,3 @@ # express-validator

An [express.js]( https://github.com/visionmedia/express ) middleware for
[node-validator]( https://github.com/chriso/node-validator ).
[node-validator]( https://github.com/chriso/validator.js ).

@@ -9,0 +9,0 @@ This is basically a copy of a [gist]( https://gist.github.com/752126 ) by

Sorry, the diff of this file is not supported yet

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