From 82064ce65ec1418b52380fe5161b873ac0066a87 Mon Sep 17 00:00:00 2001 From: FrancelWebdev Date: Sat, 23 Sep 2023 12:25:04 +0100 Subject: [PATCH] Create ajv-validator.md --- docs/3rd-party-lib/ajv-validator.md | 34 +++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 docs/3rd-party-lib/ajv-validator.md diff --git a/docs/3rd-party-lib/ajv-validator.md b/docs/3rd-party-lib/ajv-validator.md new file mode 100644 index 0000000..effa13c --- /dev/null +++ b/docs/3rd-party-lib/ajv-validator.md @@ -0,0 +1,34 @@ +# AJV Validator + +### Import +#### Nodejs +```ts +import nhttp from "nhttp-land"; +import Ajv from "ajv"; +``` + +### Usage +#### Nodejs +```ts +const app = nhttp(); +const ajv = new Ajv(); + +// ajv validate middleware +const validate = (schema) => (rev, next) => { + const valid = ajv.validate(schema, rev.body); + if (valid) return next(); + throw new HttpError(422, ajv.errors); +} + +const foobarSchema = { + type: "object", + properties: { + foo: {type: "integer"}, + bar: {type: "string"} + }, + required: ["foo"], + additionalProperties: false +} + +app.post("/save", validate(foobarSchema), () => "success save foobar"); +```