light-express-validator v1.1.0
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.
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
10 months ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago