node-easy-validatorjs
Version:
make validation easy
115 lines (87 loc) • 3.63 kB
Markdown
EasyValidator is a lightweight and flexible Node.js library for data validation. It allows you to validate data objects against predefined rules with ease and customization.
You can install EasyValidator via npm:
```bash
npm install node-easy-validatorjs
```
```javascript
const EasyValidator = require('node-easy-validatorjs');
// Create an instance of EasyValidator
const validator = new EasyValidator();
```
You can add custom validation rules using the `addRule` method:
```javascript
validator.addRule('customRule', async (value, ruleValue) => {
// Custom validation logic
return value === ruleValue;
});
```
To perform validation, use the `validate` method:
```javascript
const validationRules = {
username: 'required|string|minLength:3|maxLength:20',
email: 'required|string|format:^\\S+@\\S+\\.\\S+$',
age: 'required|integer|min:18|max:100',
// Add more validation rules as needed
};
const userData = {
username: 'john_doe123',
email: 'john@example.com',
age: 25,
// Add more data as needed
};
validator.validate(userData, validationRules)
.then(validationErrors => {
if (validationErrors) {
console.log('Validation errors:', validationErrors);
} else {
console.log('Data is valid!');
}
})
.catch(error => {
console.error('Error during validation:', error);
});
```
EasyValidator supports various validation rules, including:
- `required`: Ensures that a field is not empty or null.
- `string`: Validates that the value is a string.
- `minLength`: Validates the minimum length of a string.
- `maxLength`: Validates the maximum length of a string.
- `alpha`: Validates if a string contains only alphabetic characters.
- `alphaNumeric`: Validates if a string contains only alphanumeric characters.
- `format`: Validates if a string matches a specific format using regular expressions.
- `number`: Validates if the value is a number.
- `min`: Validates if a number is greater than or equal to a specified minimum value.
- `max`: Validates if a number is less than or equal to a specified maximum value.
- `integer`: Validates if the value is an integer.
- `float`: Validates if the value is a floating-point number.
- `positive`: Validates if a number is positive.
- `negative`: Validates if a number is negative.
- `date`: Validates if the value is a date in the format YYYY-MM-DD.
- `past`: Validates if a date is in the past.
- `future`: Validates if a date is in the future.
- `minLetters`: Validates if a string contains at least 3 letters.
- Custom rules: Developers can define custom validation rules as needed.
You can provide custom error messages for validation rules using the `customMessages` parameter:
```javascript
const customMessages = {
username: {
required: 'Username is required!',
minLength: 'Username must be at least 3 characters long!',
// Add custom messages for other rules
},
// Add custom messages for other fields
};
validator.validate(userData, validationRules, customMessages)
.then(validationErrors => {
// Handle validation errors
});
```
EasyValidator simplifies the process of data validation in Node.js applications, offering flexibility, customization, and ease of use. With support for custom rules, various built-in validation functions, and customizable error messages, EasyValidator makes data validation straightforward and efficient.