1.0.47 • Published 3 years ago

body-validations v1.0.47

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago
// Basic rule
const request_body = {
  name: "Souksavanh",
  age: 23,
  some_id: "61c3fc57c312253a7e1da187",
  gender: "male",
  phone_number: 526839374,
  contact_detail: {
    gmail: "souksavanh@gmail.com",
    whatsapp: "563434234",
  },
  contact_detail_else: {
    gmail: "souksavanh@gmail.com",
  },
  empty_object: ["1", "2"],
};

/*

    First rule string: requied optional objectid
    Second: Error message
    Third: value type or validation [string,object,number,object,array,enum,exist]

*/
const rule = {
  name: "required|name must be string|string",
  age: "required|name must be number|number",
  some_id: "required|name must be ojectid|ojectid",
  gender: "required|name must be string|enum:male,female",
  phone_number: "required|name must be string|exist:users", // users is model name base on mongoose model SUPPORT mongoose only / Mongodb
  "office_id:_id": "objectid|name must be string|exist:offices", // will use _id to find exist data, offices is model name base on mongoose model SUPPORT mongoose only / Mongodb
  contact_detail: "required|name must be string|object:gmail/string,whatsapp/required-string", //or
  contact_detail_else: "required|name must be string|object:gmail/string,whatsapp/string",
  array_data: "required|name must be array|array",
};

const exclude_body = await validate({ rule, req: req, exclude_body: true,type:"body" }); //or type = [body,query]
/*
 const rule = {
    name: "Souksavanh",
    age: 23,
    some_id: "61c3fc57c312253a7e1da187",
    gender: "male",
    phone_number: 526839374,
    contact_detail: {
        gmail: "souksavanh@gmail.com",
        whatsapp: "563434234",
    },
    contact_detail_else: {
        gmail: "souksavanh@gmail.com",
    },
    empty_object: ["1", "2"],
};
*/

const no_exclude_body = await validate({ rule, body: request_body });

/* return everything in object even nothing rule set
 const rule = {
    name: "Souksavanh",
    name1: "Souksavanh",
    name2: "Souksavanh",
    name2: "Souksavanh",
    age: 23,
    some_id: "61c3fc57c312253a7e1da187",
    gender: "male",
    phone_number: 526839374,
    contact_detail: {
        gmail: "souksavanh@gmail.com",
        whatsapp: "563434234",
    },
    contact_detail_else: {
        gmail: "souksavanh@gmail.com",
    },
    empty_object: ["1", "2"],
};
*/


# Using with async-api-response and helper async middleware with ExpressJS

const Res = require("async-api-response")
const async_middleware = (handler) => {
    return async (req, res, next) => {
      const resp = new Res(res);
      try {
        await handler(req, res, next);
      } catch (ex) {
        return resp.catch({ error: ex });
      }
    };
}

const simple_test = async_middleware(async (req,res)=> {
    const resp = new Res(res)
    const no_exclude_body = await validate({ rule, req, });
  return resp.response({data:"some_data"});
})

router.get("/",simple_test)
1.0.47

3 years ago

1.0.44

3 years ago

1.0.43

4 years ago

1.0.42

4 years ago

1.0.41

4 years ago

1.0.40

4 years ago

1.0.39

4 years ago

1.0.38

4 years ago

1.0.37

4 years ago

1.0.36

4 years ago

1.0.35

4 years ago

1.0.34

4 years ago

1.0.33

4 years ago

1.0.32

4 years ago

1.0.31

4 years ago

1.0.30

4 years ago

1.0.29

4 years ago

1.0.28

4 years ago

1.0.27

4 years ago

1.0.26

4 years ago

1.0.25

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.19

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago