Package Exports
- node-easyvalid
- node-easyvalid/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-easyvalid) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Node EasyValid
A lightweight, powerful validation library for Node.js backend development. Simplify user input validation, error handling, and data integrity in Express APIs and JavaScript applications with ease.
Features
- Truthy/falsy value checks
- Array validation for multiple inputs
- Email format validation
- String length constraints
- Numeric value validation
- Custom error messages and HTTP status codes
- Seamless integration with Express.js and other Node.js frameworks
Installation
npm install node-easyvalidQuick Start
Basic usage example:
const { isTrue, isEmail, minLength } = require("node-easyvalid");
try {
isTrue("hello", "Value is required"); // Passes
isEmail("user@example.com", "Invalid email"); // Passes
minLength("password123", 8, "Password too short"); // Passes
isTrue("", "Cannot be empty"); // Throws Error
} catch (error) {
console.log(error.message); // Custom error message
console.log(error.statusCode); // Default 400 or custom
}1. isTrue(value, [message], [statusCode])
What it does: Checks if something exists (not empty, not zero, not nothing).
Syntax: value: The thing you’re checking (like a name or number). message (optional): What to say if it fails (default: "Validation Failed"). statusCode (optional): A number for errors (default: 400, good for web apps).
Returns: true if okay, or throws an error if not.
Example
const { isTrue } = require("node-easyvalid");
try {
let name = 'John';
let emptyValue = "";
isTrue(name, "Name is missing!"); // Returns true
isTrue(emptyValue, "Name is missing!"); // Throws "Name is missing!"
} catch (error) {
console.log(error.message); // "Name is missing!"
}2. isTrues(array, [message], [statusCode])
What it does: Makes sure every item in a list exists (not empty or nothing).
Syntax: array: A list of things (like ["apple", "banana"]). message (optional): Error message if something’s wrong (default: "Validation Failed").
statusCode (optional): Error number (default: 400).
Returns: true if all items are okay, or throws an error if not. Example:
const { isTrues } = require("node-easyvalid");
try {
isTrues(["cat", "dog"], "List can’t have empty items!"); // Returns true
isTrues(["cat", ""], "List can’t have empty items!"); // Throws error
} catch (error) {
console.log(error.message); // "List can’t have empty items! at index 1"
}3. isEmail(email, [message], [statusCode])
What it does: Checks if something looks like an email (e.g., "name@site.com").
Syntax: email: The email you’re checking. message (optional): Error message if it’s wrong (default: "Invalid email format"). statusCode (optional): Error number (default: 400).
Returns: true if it’s an email, or throws an error if not.
Example
const { isEmail } = require("node-easyvalid");
try {
isEmail("me@example.com", "That’s not an email!"); // Returns true
isEmail("not-an-email", "That’s not an email!"); // Throws "That’s not an email!"
} catch (error) {
console.log(error.message); // "That’s not an email!"
}4. minLength(value, min, [message], [statusCode])
What it does: Makes sure text is long enough (like a password).
Syntax: value: The text to check. min: The smallest length allowed (a number). message (optional): Error message if too short (default: "Must be at least {min} characters"). statusCode (optional): Error number (default: 400).
Returns: true if long enough, or throws an error if not.
Example
const { minLength } = require("node-easyvalid");
try {
minLength("password123", 8, "Password too short!"); // Returns true
minLength("pass", 8, "Password too short!"); // Throws "Password too short!"
} catch (error) {
console.log(error.message); // "Password too short!"
}5. isNumber(value, [message], [statusCode])
What it does: Checks if something is a number (like 42 or "42").
Syntax: value: The thing to check. message (optional): Error message if it’s not a number (default: "Must be a number"). statusCode (optional): Error number (default: 400).
Returns: true if it’s a number, or throws an error if not.
Example
const { isNumber } = require("node-easyvalid");
try {
isNumber(25, "Age must be a number!"); // Returns true
isNumber("25", "Age must be a number!"); // Returns true
isNumber("twenty", "Age must be a number!"); // Throws "Age must be a number!"
} catch (error) {
console.log(error.message); // "Age must be a number!"
}Real-World Use Cases
1. Express API - User Registration
Validate user inputs in an Express API for registration:
const { isTrue, isEmail, minLength, isNumber } = require("node-easyvalid");
// Registration endpoint
app.post("/api/register", (req, res, next) => {
try {
const { username, email, password, age } = req.body;
// Validate inputs
isTrue(username, "Username is required",400);
minLength(username, 3, "Username must be at least 3 characters");
isEmail(email, "Please provide a valid email");
minLength(password, 8, "Password must be at least 8 characters");
isNumber(age, "Age must be a number");
// Simulate successful registration
res.status(201).json({
message: "User registered successfully",
user: { username, email, age },
});
} catch (error) {
res.status(error.statusCode || 500).json({ message: error.message || "Internal Server Error" });
}
});