Skip to content

notegame/validatorjs-expressjs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Installation

The validatorjs library makes data validation in JavaScript very easy in both the browser and Node.js. This library was inspired by the Laravel framework's Validator.

Doc validatorjs

$ npm install validatorjs-expressjs

or

$ yarn add validatorjs-expressjs

Usage

Simple Usage

const express = require("express");
const validator = require("validatorjs-expressjs");
const bodyParser = require("body-parser");
const Validator = require("validatorjs");

const app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

// IF YOU WANT TO ADD CUSTOM VALIDATE //
Validator.registerAsync("unique", async function(
  value,
  attribute,
  request,
  passes
) {
  passes();
});

app.use(
  validator({
    Validator
  })
);
// ------------------------------------

app.post("/products", [
  validator({
    rules: function(req) {
      return {
        name: "required|unique",
        price: "required|numeric"
      };
    }
  }),
  function(req, res, next) {
    res.json({ message: "submit products ok" });
  }
]);

app.use((err, req, res, next) => {
  res.status(400).json({
    message : err.message
  });
});

app.listen(3000, function() {
  console.log("web server listening on port 3000");
});

Custom Field Label

app.post("/products", [
  validator({
    rules: function(req) {
      return {
        firstName: "required",
        lastName: "required"
      };
    },
    //Custom field label
    attributeNames: req => {
      return {
        firstName: "First Name",
        lastName: "Last Name",
      };
    }
  }),
  function(req, res, next) {
    res.json({ message: "submit products ok" });
  }
]);

Error Response

{
  "message" : "The First Name field is required."
}

Separate Request File

src/request/product_create_request.js

module.exports = {
  //Rule
  rules: function(req) {
    return {
      firstName: "required",
      lastName: "required"
    };
  },
  //Custom field label
  attributeNames: req => {
    return {
      firstName: "First Name",
      lastName: "Last Name",
    };
  }
}
const productCreateRequest = require("./request/product-create.request");

app.post("/products", [
  validator(productCreateRequest),
  function(req, res, next) {
    res.json({ message: "submit products ok" });
  }
]);

License

Copyright © 2020 Released under the MIT license

Credits

validatorjs created by David Tang

About

Validation library inspired by Laravel's Validator and support for express middleware

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published