a koa port of express-validator
npm install koa-validator
var koa = require('koa')
, validator = require('koa-validator')
, bodyParser = require('koa-bodyparser')
, app = koa()
;
app
.use(bodyParser())
.use(validator({
onValidationError: function(errMsg){
console.log('Validation error:', errMsg);
}
}))
.use(functon *(next){
this.checkParams('testparam', 'Invalid number').isInt();
yield next;
})
.listen(3000)
;
-
onValidationError -
function(errMsg)
, default to null. TheerrMsg
is the errMsg you defined when you check one variableYou can define the function like this
function(errMsg){ throw new Error('Validation error: ' + errMsg); }
-
validationErrorFormatter -
function(paramName, errMsg, value)
, the default function is belowfunction(paramName, errMsg, value){ return { param: paramName , msg: errMsg , value: value }; }
If you will use checkBody
or assertBody
or sanitizeBody
, you should use one bodyparse middleware before validator.
npm test
- checkParams
- checkQuery
- checkBody
- checkHeader
- sanitizeParams
- sanitizeQuery
- sanitizeBody
- assertParams => checkParams
- assertQuery => checkQuery
- assertBody => checkBody
- assertHeader => checkHeader
- haveValidationError, return
true
if have any validationError - validationErrors, if have any validationError, return an array of error object you returned in
validationErrorFormatter
You can use all check methods in validator.js checks
.
In addition, you can use below methods extended to validator.js.
notEmpty
empty
eq
, use==
eqeq
, use===
neq
, use!=
neqeq
, use!==
gt
lt
ge
le
notContains
isTime
len
, an alias to validator.js'isLength
in
, an alias to validator.js'isIn
byteLength
, a function support set charset.isUrl
, an alias to validator.js'isURL
isIp
, an alias to validator.js'isIP
isLowerCase
, an alias to validator.js'isLowercase
isUpperCase
, an alias to validator.js'isUppercase
You can use all sanitize methods in validator.js
.
In addition, you can use below methods extended to validator.js.
default
, set default valuetoLowerCase
toUpperCase
encodeURI
encodeURIComponent
decodeURI
decodeURIComponent
replace
toLow
, an alias totoLowerCase
toUp
, an alias totoUpperCase
If you want to extend validator.js, you can use extendCheck
and extendSanitize
like below examples.
When you extend validator.js, your check function name best match is*
, and your sanitize function name best match to*
.
This is not force, but recommended.
If you extend one function that validator.js have already had, the function will be ignored, and an error will be thrown.
var koa = require('koa')
, bodyParser = require('koa-bodyparser')
, validator = require('koa-validator')
;
validator.extendCheck('isFinite', function(str){
return isFinite(str);
});
validator.extendCheck({
isFinite: function(str){
return isFinite(str);
}
, isFinite2: function(str){
return isFinite(str);
}
});
validator.extendSanitize('toZero', function(str){
return 0;
});
validator.extendSanitize({
toOne: function(str){
return 1;
}
, toTwo: function(str){
return 2;
}
});
koa()
.use(bodyParser())
.use(validator())
.use(function *(next){
this.checkParams('test', 'Invalid test value').isFinite();
yield next;
})
.listen(3000)
;
Thanks to koa-validate
, some extended methods and test suites are based on koa-validate.
MIT