# Objection JSON Model Validation
# Introduction
JSON schema (opens new window) validation can be enabled by setting the jsonSchema property of a model class. The validation is ran each time a Model instance is created.
You rarely need to call $validate method explicitly, but you can do it when needed. If validation fails a ValidationError will be thrown. Since we use Promises, this usually means that a promise will be rejected with an instance of ValidationError.
Let's add a validation to our UserModel
import { Model } from "Elucidate/Database/Model"; export class UserModel extends Model { static tableName = "users"; id!: number; first_name!: string; last_name!: string; email!: string; password!: string; // Optional JSON schema. This is not the database schema! Nothing is generated // based on this. This is only used for validation. Whenever a model instance // is created it is checked against this schema. http://json-schema.org/. static jsonSchema = { type: "object", required: ["name"], properties: { id: { type: "integer" }, first_name: { type: "string", minLength: 1, maxLength: 255 }, last_name: { type: "string", minLength: 1, maxLength: 255 }, email: { type: "string", minLength: 1, maxLength: 255 }, password: { type: "string", minLength: 1, maxLength: 255 }, }, }; }
Copied!
Visit ObjectionJs documentation site (opens new window) for more info.