light-express-validator
v1.1.0
Published
A super lightweight express validation inspired by Laravel validation.
Downloads
41
Maintainers
Readme
light-express-validator
light-express-validator
is a homemade lightweight validation middleware for Express.js applications. It allows you to easily validate incoming request data with a simple and intuitive syntax.
- Why light express validator?
- It's simple to use, lightweight and 0 dependency.
Installation
To install the package, run:
npm install light-express-validator
Usage
Basic Usage
- First, require the package in your Express.js application:
const validate = require('light-express-validator');
- Define your validation rules for each field you want to validate:
const validationRules = {
username: 'required|min:3|max:20',
email: 'required|email',
age: 'required|numeric|min:18',
};
- Use the
validate
middleware in your route:
app.post('/user', validate(validationRules), (req, res) => {
// Your route handler logic here
});
Available Validation Rules
required
: Field must be present and not emptymin:x
: Field must have a minimum of x charactersmax:x
: Field must have a maximum of x charactersnumeric
: Field must be a numberinteger
: Field must be an integerdecimal:x
: Field must be a decimal with x decimal placesboolean
: Field must be true or falsedate
: Field must be a valid dateemail
: Field must be a valid emailimage
: Field must be an image file (for file uploads)
Handling Validation Errors
If validation fails, the middleware will automatically send a 400 Bad Request response with detailed error information. The response will have this structure:
{
"name": "ValidationError",
"fields": {
"name": "The name field must be at most 9 characters.",
"email": "The email field must be a valid email address."
}
}
Custom Error Handling
If you want to handle validation errors differently, you can catch the ValidationError
:
app.use((err, req, res, next) => {
if (err instanceof ValidationError) {
// Custom error handling logic
return res.status(422).json({ errors: err.fields });
}
next(err);
});
Example
Here's a complete example of how to use light-express-validator
in an Express.js route:
const express = require('express');
const validate = require('light-express-validator');
const app = express();
app.use(express.json());
app.post(
'/user',
validate({
username: 'required|min:3|max:20',
email: 'required|email',
age: 'required|numeric',
}),
(req, res) => {
// If we reach here, validation passed
res.json({ message: 'User created successfully', user: req.body });
}
);
app.listen(3000, () => console.log('Server running on port 3000'));
This setup will validate that:
username
is required, at least 3 characters, and no more than 20 charactersemail
is required and a valid email formatage
is required, numeric
If any of these validations fail, it will return a 400 Bad Request with details about which fields failed validation.