Validator Package
Error Messages
Customize validation error messages.
Error Messages
Customize validation error messages.
Default Messages
By default, validation errors include human-readable messages:
try {
validate(data, rules);
} catch (error) {
console.log(error.messages);
// {
// name: ['The name field is required'],
// email: ['The email must be a valid email address'],
// }
}
Custom Messages
Pass custom messages as the third argument:
validate(req.body, rules, {
"name.required": "Please enter your name",
"email.required": "Email address is required",
"email.email": "Please provide a valid email address",
"password.min": "Password must be at least 8 characters",
});
Field-Specific Messages
validate(req.body, rules, {
"name.required": "What should we call you?",
"email.unique": "This email is already registered",
});
Rule-Specific Messages
validate(req.body, rules, {
required: "This field is required",
email: "Must be a valid email",
"min.string": "Must be at least :min characters",
});
Error Structure
interface ValidationError {
errors: Record<string, string[]>; // Rule codes
messages: Record<string, string[]>; // Human-readable
}
Usage in Express
import { validate, ValidationError } from "@lara-node/validator";
Route.post("/users", async (req, res) => {
try {
const data = validate(req.body, {
name: "required|string",
email: "required|email|unique:users",
});
const user = await User.create(data);
return user;
} catch (error) {
if (error instanceof ValidationError) {
return res.status(422).json({
message: "Validation failed",
errors: error.messages,
});
}
throw error;
}
});
Next Steps
- Validation Rules -- All rules
- Custom Rules -- Custom validation
- Basic Usage -- Get started