تواصل معنا
Webflow Premium Partner إيهاب فايز
العودة لأدوات AI Coding
الأمان والجودة

Joi Data Validation

التحقق من هياكل البيانات المعقدة مع Joi أقوى مكتبة للتحقق من المخططات في JavaScript.

Claude Code Cursor Copilot Windsurf

نظرة عامة

Joi هي أغنى مكتبة للتحقق من المخططات بالميزات في JavaScript وطُورت أصلاً كجزء من نظام hapi.js البيئي. توفر واجهة برمجة تطبيقات واسعة لوصف أشكال البيانات مع أكثر من 100 قاعدة تحقق بما في ذلك دعم السلاسل والأرقام والتواريخ والمصفوفات والكائنات والبدائل والبيانات الثنائية والأنواع المخصصة.

يتفوق Joi في التحقق من هياكل البيانات المعقدة والمتداخلة بعمق مع حقول مترابطة. تدعم طريقة when() المنطق الشرطي المعقد وتتيح alternatives() التحقق من نوع الاتحاد مع اكتشاف النوع تلقائياً. يمكن للمكتبة التحقق من البيانات وتحويلها في وقت واحد بتحليل السلاسل إلى أرقام وسلاسل ISO إلى تواريخ وتطبيق تحويلات مخصصة.

للتحقق من API يتكامل Joi مع Express من خلال وسيط مثل celebrate الذي يتحقق من أجسام الطلب ومعلمات الاستعلام والرؤوس والكوكيز مقابل المخططات المحددة. تتضمن رسائل الخطأ المسار الكامل للحقول غير الصالحة مما يسهل تصحيح الأخطاء. يوفر Joi أيضاً describe() الذي يخرج وصف JSON للمخطط وهو مفيد لتوليد وثائق API تلقائياً.

لمن هذه الأداة؟

  • التحقق من حمولات طلبات API المعقدة مع كائنات متداخلة
  • تحديد مخططات التكوين مع الإعدادات الافتراضية والإجبار
  • التحقق من حمولات webhook من خدمات الطرف الثالث
  • بناء مخططات تحقق قابلة لإعادة الاستخدام لنماذج قاعدة البيانات

التثبيت

إعداد Claude Code
npm install joi

الإعدادات

import Joi from "joi"

const schema = Joi.object({
  username: Joi.string().alphanum().min(3).max(30).required(),
  email: Joi.string().email().required(),
  birth_year: Joi.number().integer().min(1900).max(2010),
  role: Joi.string().valid("admin", "user").default("user"),
  metadata: Joi.object().pattern(Joi.string(), Joi.any()),
}).with("username", "email")

const { error, value } = schema.validate(data)