تخطَّ إلى المحتوى

🔌 شرح REST APIs

التحقّق من المدخلات

الدرس 16 من 25· ⏱ 1 دقائق قراءة

لماذا التحقّق؟

لا تثق بمدخلات المستخدم أبدًا — تحقّق منها لمنع البيانات الفاسدة والثغرات.

تحقّق يدوي

app.post("/users", (req, res) => {
  const { name, email, age } = req.body;
  const errors = [];
  if (!name) errors.push("الاسم مطلوب");
  if (!email?.includes("@")) errors.push("بريد غير صالح");
  if (age && age < 0) errors.push("عمر غير صالح");

  if (errors.length) {
    return res.status(422).json({ errors });
  }
  // ... المتابعة
});

بمكتبة Zod (أنظف)

import { z } from "zod";

const userSchema = z.object({
  name: z.string().min(1),
  email: z.string().email(),
  age: z.number().min(0).optional()
});

app.post("/users", (req, res) => {
  const result = userSchema.safeParse(req.body);
  if (!result.success) {
    return res.status(422).json({ errors: result.error.issues });
  }
  const data = result.data;   // مُتحقَّق منه ومُنمّط
});

💡 422 (Unprocessable Entity) هو الرمز المناسب لفشل التحقّق من البيانات.

🎯 التالي: معالجة الأخطاء.

هل كان هذا الدرس مفيدًا؟