request-validator-js
v1.0.3
Published
A request validator for auto generating error messages
Downloads
17
Readme
Request Validator
A Node.js module for validating any kind of js dictionary. Inspired by the Request Validation feature in laravel.
Installation
npm install request-validator-js
Usage
For more in depth on how the package works check out the docs.
Some simple examples of usages of this package.
Example payload
A example data payload looks like this
{
"token": "",
"someValue": "This has a value",
"aInt": 0,
"needsToBeString": 255
}
Javascript
var RequestValidator = require('request-validator-js');
var request = new RequestValidator.RequestValidator();
let errors = request.validate(data,{
'token': 'required|max:255',
'needsToBeString': 'required|string',
'doesNotExistInData': 'required',
});
TypeScript
import { RequestValidator } from 'request-validator-js';
let request = new RequestValidator();
let errors = request.validate(data,{
'token': 'required|max:255',
});
Example output of the errors produces in the javascript example.
{
"errors": {
"aInt": [
"token is required!"
],
"someValue": [
"someValue is required to be a minimum length of 15"
]
}
}
Using custom error messages
A example for javascript
var data = {
"name": "example",
};
var custom_errors = {
//Custom error message for the rule called "username"
"username": "field :attribute with the value :value is not a valid username!"
};
var validation = {
/* This will validate that the field name exists and that it is not empty and that it is a valid username */
"name": "required|username",
}
// In this example no errors will be present since example is a vaild username.
var response = request.validate(data, validation, custom_errors);
Above example with the data field "name" being a invalid username, example: "invalid username" contains spaces which is not allowed. The output would looks like this.
{
"errors": {
"name": [
"field name with the value invalid username is not a valid username!"
]
}
}
Rules
Available rules
For a list of currently available rule see RULES A quick reference for the rules are:
- required
- min:int
- max:int
- boolean
- string
- url
- json
- username
Writing custom rules
For writing custom rules there a simple placeholder values that should be place in the errorMessage string. the available placeholders: :attribute will be replaced with the fields name. :param will be replaced with the parameter in the rule, for example max:3, param = 3. :value will be replaced by the actual input value of the field.
Test
Running the mocha unit tests are done by running the following command:
npm run test