fmiddlewares
v1.21.1-0.7.6
Published
It is a library for nodejs that allows to make validations to the routes in a simpler way
Maintainers
Readme
fmiddlewares
It is a library for nodejs that allows to make validations to the routes in a simpler way
- Installing
- Import
- Use
- Validate
- Developer
- Repositories
Installing
Using npm:
npm install fmiddlewaresImport
const fmiddlewares = require('fmiddlewares')Use
Use in Body
router.post(
rute,
[
fmiddlewares.validateItem({
config
})
],
controller
)Use in Query
router.post(
rute,
[
fmiddlewares.validateItem({
config
},"query")
],
controller
)Use in Headers
router.post(
rute,
[
fmiddlewares.validateItem({
config
},"headers")
],
controller
)Use with env
router.post(
rute,
[
fmiddlewares.validateItem({
key : {
type:"compare",
value: env.KEY
}
},"headers")
],
controller
)Validate
Example Gitlab Github
String
Example Gitlab Github
fmiddlewares.validateItem({
name : {
type:"string"
}
})String, allow empty
Example Gitlab Github
fmiddlewares.validateItem({
name : {
type:"string",
isEmpty:true
}
})Example Gitlab Github
fmiddlewares.validateItem({
email : {
type:"email"
}
})Password
Example Gitlab Github
fmiddlewares.validateItem({
password:{
type:"password",
regexs:[
{
regex:/^.{8,}$/,
msj:"minimum of 8 characters"
},
{
regex:/[a-z]/,
msj:"must contain lowercase letters"
},
{
regex:/[A-Z]/,
msj:"must contain capital letters"
},
]
}
})List
Example Gitlab Github
fmiddlewares.validateItem({
sex : {
type:"list",
list:[
"male",
"feminine"
]
}
})Object
Example Gitlab Github
fmiddlewares.validateItem({
user:{
type:"object",
items:{
id:{
type:"string"
},
name:{
type:"string"
},
email : {
type:"email"
},
password:{
type:"password",
regexs:[
{
regex:/^.{8,}$/,
msj:"minimum of 8 characters"
},
{
regex:/[a-z]/,
msj:"must contain lowercase letters"
},
{
regex:/[A-Z]/,
msj:"must contain capital letters"
},
]
}
}
}
})Number
Example Gitlab Github
fmiddlewares.validateItem({
age : {
type:"number"
}
})Number with min
Example Gitlab Github
fmiddlewares.validateItem({
age : {
type:"number",
min: 10
}
})Number with max
Example Gitlab Github
fmiddlewares.validateItem({
age : {
type:"number",
max: 20
}
})Boolean
Example Gitlab Github
fmiddlewares.validateItem({
married : {
type:"boolean"
}
})Array
Example Gitlab Github
fmiddlewares.validateItem({
items : {
type:"array",
min:1, //if need min elements
max:3, //if need max elements
typeElemets:"number" //if need all element is type typeElemets
}
})Compare
Example Gitlab Github
fmiddlewares.validateItem({
element : {
type:"compare",
value:"value"
}
})Compare with function
Example Gitlab Github
fmiddlewares.validateItem({
element : {
type:"compare",
value:"value",
function:(compare)=>{
return compare.value == 1
}
//if use function, value is not use
}
})Leave Undefined
Example Gitlab Github
fmiddlewares.validateItem({
company : {
type:"string",
isUndefined:true
}
})Exact Data
Example Gitlab Github
fmiddlewares.validateItem({
exactItems:true,
name : {
type:"string",
},
company:{
type:"object",
items:{
exactItems:true,
name:{
type:"text"
},
direction:{
type:"text"
}
}
}
})Group
Example Gitlab Github
Group with string
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"string",
items:[
"id",
"name",
"phone"
]
}
})Group with email
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"email",
items:[
"email",
"email_user",
"email_login"
],
}
})Group with password
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"password",
items:[
"password",
"password_user",
"password_login"
],
regexs:[
{
regex:/^.{8,}$/,
msj:"minimum of 8 characters"
},
{
regex:/[a-z]/,
msj:"must contain lowercase letters"
},
{
regex:/[A-Z]/,
msj:"must contain capital letters"
},
]
}
})Group with list
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"list",
items:[
"var1",
"var2",
"var3"
],
list:[
"option1",
"option2",
"option3",
]
}
})Group with number
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"number",
items:[
"age",
"nitems",
"price"
],
min: 10, // if need min
max: 20 // id need max
}
})Group with boolean
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"boolean",
items:[
"active",
"show",
"open"
],
}
})Group with array
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"array",
min:1, //if need min elements
max:3, //if need max elements
typeElemets:"number" //if need all element is type typeElemets
items:[
"items",
"list",
"card"
],
}
})Group with compare
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"compare",
items:[
"key",
"key2",
],
value:"value"
}
})Group with compare and function
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"compare",
items:[
"key",
"key2",
],
value:"value",
function: (compare) => {
switch (compare.key) {
case "key":
return compare.value == "value1"
break;
case "key2":
return compare.value == "value2"
break;
default:
return false
break;
}
}
//if use function, value is not use
}
})Group with Leave Undefined
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"string",
items:[
"name",
"phone",
],
isUndefined:true
}
})Group with exactItems
Example Gitlab Github
fmiddlewares.validateItem({
elements:{
type:"group",
groupType:"string",
items:[
"name",
"phone",
],
exactItems:true,
}
})Examples
https://github.com/franciscoblancojn/fmiddlewares.testing
https://gitlab.com/npmjs_packages/fmiddlewares.testing
