express-request-checker
Create request checker middleware for Express.
with express-request-checker, checking HTTP request's query
, body
or url params
will be more easy and readable. All the works is just require
express-request-checker in router.js
which belongs to an Express project and config it. So it's no need to modify any other source file.
Since validation codes are written in a config-like way, router.js
file will look like an API document, I hope that the communication cost within the development team can be reduced.
- No validation codes.
router.js
is also an API document.- Easy to combine with other validation package.
Quick Example(Javascript):
// router.js var express = ;var reqCheckerModule = ; var reqChecker = reqCheckerModulerequestChecker;var router = express; var options = strict: false // Allow unexpected parameter. (true|false, DEFAULT: true) query: // Check req.query. (params|query|body) 'param1': matchRegExp: /^[0-9]{1}$/ 'param2': isIn: 1 2 3 isOptional: true // Optional parameter. (true|false, DEFAULT: false) ;router; moduleexports = router;
Quick Example(CoffeeScript):
# router.coffee express = require 'express'reqCheckerModule = require 'express-request-checker' reqChecker = reqCheckerModulerequestCheckerrouter = expressRouter options = strict: false # Allow unexpected parameter. (true|false, DEFAULT: true) query: # Check req.query. (params|query|body) 'param1': matchRegExp: /^[0-9]{1}$/ 'param2': isIn: 123 isOptional: true # Optional parameter. (true|false, DEFAULT: false) routerget '/path'reqCheckeroptionshandlerFunction module.exports = router
Play with other modules
// router.js var express = ;var reqCheckerModule = ; var reqChecker = reqCheckerModulerequestChecker;var router = express; var validator = ;var options = params: 'id': assertTrue: validatorisInt body: 'email': assertTrue: validatorisEmail 'jsonData': assertTrue: validatorisJSON ;router; moduleexports = router;
Checker Options Default Values
Option | Default Value |
---|---|
strict | true |
Parameter Options Default Values
Option | Default Value |
---|---|
isOptional | false |
assertTrue | [] |
assertFalse | [] |
matchRegExp | [] |
isIn | [] |
notIn | [] |
isInteger | null |
isEmail | null |
isArray | null |
isIntegerArray | null |
equal | null |
greaterThan | null |
greaterEqual | null |
lessThan | null |
lessEqual | null |
allowEmpty | false |
minLength | null |
maxLangth | null |
Parameter Options
assertTrue
function
, [function, function ...]
or []
. (DEFAULT: []
- No checker)
Using parameter in request as function(s)'s argument, if the function(s) return true
,OK. Otherwise, NG.
Example:
option = query: param1: assertTrue: { return value > 10; }
assertFalse
Opposite to assertTrue
.
matchRegExp
RegExp
, [RegExp, RegExp ...]
or []
. (DEFAULT: []
- Don't check)
If the RegExp(s) test result is true
, OK. Otherwise, NG.
Example:
option = query: param1: matchRegExp: /^[012]{1}$/ /^[234]{1}$/
isIn
[value, value, ...]
or []
. (DEFAULT: []
- Don't check)
Values of parameter in request which are allowed.
Example:
option = query: param1: isIn: 1 2 3
notIn
Opposite to isIn
.
isInteger
true
or false
. (DEFALT:null
- Don't care)
when true
, The value of parameter in request must be an integer
.
when false
, The value of parameter in request must NOT be an integer
.
Example:
option = query: param1: isInteger: true
isEmail
true
or false
. (DEFALT:null
- Don't care)
when true
, The value of parameter in request must be an correct email address.
when false
, The value of parameter in request must NOT be an email address.
Example:
option = query: param1: isEmail: true
isArray
true
or false
. (DEFALT:null
- Don't care)
when true
, The value of parameter in request must be an Array or stringified Array.
when false
, The value of parameter in request must NOT be an Array or stringified Array.
Example:
option = query: param1: isArray: true
isIntegerArray
true
or false
. (DEFALT:null
- Don't care)
when true
, The value of parameter in request must be an Array or stringified Array whose elements are all integers.
when false
, The value of parameter in request must NOT be an Array or stringified Array whose elements are all integers.
Example:
option = query: param1: isIntegerArray: true
equal / greaterThan / greaterEqual / lessThan / lessEqual
integer
or null
. (DEFALT:null
- Don't care)
The value of parameter in request must be equal/greaterThan/greaterEqual/lessThan/lessEqual to the option value.
Example:
option = query: param1: equal: 100
allowEmpty
true
or false
. (DEFAULT: false
)
when setted true
, The value of parameter in request can be ''
.
when setted true
, The value of parameter in request can NOT be ''
.
Example:
option = query: param1: isEmpty: false
maxLength / minLength
integer
or null
. (DEFALT:null
- Don't care)
Max/Min Length of the value of parameter in request.
Example:
option = query: param1: minLength: 5 maxLength: 10
Install:
npm install express-request-checker
Test:
cd node_modules/express-request-checkernpm test