1.2.5 • Published 5 years ago

webux-validator v1.2.5

Weekly downloads
-
License
SEE LICENSE IN li...
Repository
github
Last release
5 years ago

Webux Validator

This module is a wrapper around the Joi module.

Installation

npm i --save webux-validator

Usage

Available validators

  • Body (req.body)
  • MongoID (req.params.id)
  • MongoIdOrURL (req.params.id_url)
  • User (req.user)
  • Headers (req.headers)
  • Files (req.files)

validator

to know how to create a validator, check the Joi documentation,
validators/language.js

const Joi = require("joi");

const Create = Joi.object().keys({
  language: {
    name: Joi.string().required(),
    shortcuts: Joi.array()
      .items(Joi.string())
      .required(),
    defaultValue: Joi.boolean().required()
  }
});

const MongoID = Joi.string()
  .regex(/^(?=[a-f\d]{24}$)(\d+[a-f]|[a-f]+\d)/i)
  .required();

module.exports = {
  Create,
  MongoID
};

example

const express = require("express");
const app = express();
const bodyParser = require("body-parser");
const validator = require("webux-validator");
const languageValidator = require("./validators/language");

app.use(
  bodyParser.json({
    limit: "1mb"
  })
);
app.use(
  bodyParser.urlencoded({
    limit: "1mb",
    extended: true
  })
);

/*
req.body
===
{"language":{
	"name":"french",
	"shortcuts":["fr"],
	"defaultValue":true
}}
*/
app.post(
  "/language",
  validator.Body(languageValidator.Create),
  (req, res, next) => {
    res.status(201).json({ language: { text: "language 1" } });
  }
);

//5cf0524c29b376c575e6005b
app.get(
  "/language/:id",
  validator.MongoID(languageValidator.MongoID),
  (req, res, next) => {
    res.status(200).json({ language: { text: "language 1" } });
  }
);

app.use("*", (error, req, res, next) => {
  res.status(error.code).json(error);
});

app.listen(1337);

if you need more validators, create a pull request

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

SEE LICENSE IN license.txt

1.2.5

5 years ago

1.2.4

5 years ago

1.2.3

5 years ago

1.2.2

5 years ago

1.2.1

5 years ago

1.2.0

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago