Validator Package
Basic Validation
Learn the basics of validating data with LaraNode's validator.
Basic Validation
Learn the basics of validating data with LaraNode's validator.
validate() Function
import { validate } from "@lara-node/validator";
const validated = validate(data, rules);
Returns validated and coerced data, or throws ValidationError.
Basic Rules
const data = validate(req.body, {
name: "required|string|max:255",
email: "required|email",
age: "required|integer|min:18",
});
Rule Syntax
Rules are pipe-separated:
'required|string|max:255'
Parameters use colons:
'between:18,100'
'in:admin,user,moderator'
Array Validation
const data = validate(req.body, {
tags: "required|array",
"tags.*": "string|max:50",
});
Nested Objects
const data = validate(req.body, {
user: "required",
"user.name": "required|string",
"user.email": "required|email",
"user.address.street": "required|string",
"user.address.city": "required|string",
});
Handling Errors
import { ValidationError } from "@lara-node/validator";
try {
const data = validate(req.body, rules);
} catch (error) {
if (error instanceof ValidationError) {
// error.errors -- rule codes
// error.messages -- human-readable messages
return res.status(422).json({
errors: error.messages,
});
}
}
Nullable Fields
const data = validate(req.body, {
bio: "nullable|string|max:500",
website: "nullable|url",
});
Sometimes
Only validate if the field is present:
const data = validate(req.body, {
email: "sometimes|email",
});
Next Steps
- Validation Rules -- All available rules
- Custom Rules -- Custom validation
- Error Messages -- Custom messages