express-validator
Advanced tools
Comparing version 1.0.1 to 2.0.0
@@ -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
28248
604
+ Addedvalidator@3.1.0(transitive)
- Removedvalidator@2.0.0(transitive)
Updatedvalidator@3.1.0