@validify-js/core
v1.2.5
Published
validation package for Javascript and NodeJS
Downloads
7
Maintainers
Readme
installation
npm install --save @validify-js/core
please, buy me a coffe to support this package.
Table of contents
Creating Schema
an example of how to create a valid schema to validate an object:
// keep in mind that "type" property must be specified!!!
// for example type:Number
import { Schema } from "@validify-js/core";
export const user = new Schema({
name: { type: String, required: false, minLength: 7 },
email: { type: String, required: true, email: true },
gender: { type: String, required: true },
hobbies: {
type: Array,
required: true,
minLength: 3,
message: "3 hobbies should be selected at least!", // if you omit the "message" field, default message will be displayed
},
blocked: {
type: Boolean,
required: false,
},
password: {
type: String,
required: true,
pattern: /[A-Za-z0-9]{8,}/,
},
age: {
type: Number,
required: false,
min: 18,
max: 30,
},
profession: {
type: String,
required: true,
},
});
Validating an object
you can validate any object by using the schema wich we created above. for example:
const user = {
name: "Farid",
email: "[email protected]",
hobbies: ["sky-diving", "soccer"],
age: 25,
};
const { ok, data, errors } = userSchema.validate(user);
// validation will be failed. (ok --> false),
// because, a few fields are required in the above schema.
Using with NodeJS
how to use it with NodeJS ? that's amazingly easy
// best practice! create the schema as a seperate file
// and import it to keep code clean.
import { Schema } from "@validify-js/core";
const loginSchema = new Schema({
username: {
type: String,
required: true,
minLength: 5,
maxLength: 15,
message: "username is required!",
},
password: {
type: String,
required: true,
pattern: /[A-Za-z0-9]{8,}/,
},
});
// Express.js route handler
const loginHandler = (req, res, next) => {
const { ok, data, errors } = loginSchema.validate(req.body);
// if "ok" is true, it means req.body is valid , you are good to go!
// "data" includes property values
// "errors" includes the error messages of invalid fields, if exists
try {
if (!ok) {
const error = new Error("validation failed");
error.errors = errors;
throw error;
}
// do some stuff, and return response.
} catch (error) {
next(error);
}
};
you might not belive, however, that's pretty much it, as simple as you see
that's pretty much it, guys!
you can reach me here:
Linkedin | Facebook | Twitter | Instagram
please, buy me a coffe to support this package.