0Pricing
TypeScript Academy · درس

أنواع معالجات الموجّه و Request/Response

حدّد أنواع معالجات مسارات Express: المعاملات والاستعلامات وأجسام JSON، وأرسل استجابات ذات أنواع باستخدام res.json و DTOs قابلة لإعادة الاستخدام.

أنواع معالجات الموجّه و Request/Response درس مجاني في TypeScript Academy على CoddyKit. هذا هو الدرس 1 من أصل 3. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في TypeScript Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة TypeScript Academy 3 دروس في المجموع.

مقدمة

الهدف: إعداد Express API صغيرة بأنواع صارمة. ستحدد أنواع params وquery وJSON bodies للمسارات، ثم تعيد JSON ذا نوع محدد باستخدام res.json.

  • واجهات DTO
  • Request<P, Res, Body, Q>
  • res.json ذو نوع محدد

إعداد الخادم

هيّئ Express ومكّن تحليل JSON. اجعل نقطة نهاية فحص الصحة صغيرة وحدّد أنواعها باستخدام Request/Response.

import express, { Request, Response } from "express"

const app = express()
app.use(express.json())

app.get("/", (_req: Request, res: Response) => {
  res.type("text/plain").send("OK")
})

app.listen(3000, () => console.log("http://localhost:3000"))

المعاملات والاستعلام

حدّد نوع كل خانة صراحةً: Params وQuery وResBody. يساعد الإكمال التلقائي على تجنّب الأخطاء الإملائية.

import { Request, Response } from "express"

type Params = { id: string }
 type Query = { verbose?: "1" | "0" }
 type ResBody = { id: string; name: string; details?: string }

export function getUser(req: Request<Params, ResBody, unknown, Query>, res: Response<ResBody>) {
  const { id } = req.params
  const { verbose } = req.query
  const body: ResBody = { id, name: "Ada", details: verbose === "1" ? "Loves math" : undefined }
  return res.status(200).json(body)
}

الجسم وres بأنواع محددة

حدّد نوع body لطلبات POST/PUT، بالإضافة إلى response ذي نوع محدد. وتعمل DTOs الخاصة بك أيضًا بوصفها توثيقًا.

import { Request, Response } from "express"

type CreateUserBody = { name: string }
 type CreateUserRes = { id: string; name: string }

export function createUser(req: Request<{}, CreateUserRes, CreateUserBody>, res: Response<CreateUserRes>) {
  const { name } = req.body
  const result: CreateUserRes = { id: "u_1", name }
  return res.status(201).json(result)
}

توصيل المسارات

ركّب معالجات صغيرة ذات أنواع محددة. وتُتحقَّق معاملات المسار من خلال مطابقة القالب (مثل :id).

import express from "express"
import { getUser } from "./getUser"
import { createUser } from "./createUser"

const app = express()
app.use(express.json())

app.get("/users/:id", getUser)
app.post("/users", createUser)

app.listen(3000, () => console.log("http://localhost:3000"))

نصائح

نصائح:

  • اجعل DTOs صغيرة وأعد استخدامها عبر المعالجات.
  • فضّل القيم الحرفية لاتحاد الأنواع لقيم الاستعلام المقيّدة.
  • أعد رموز حالة دقيقة وJSON ذا نوع محدد.

التحقق من أنواع Express

تحقق سريع: كيف تحدد نوع معالج Express الذي يحتوي على معاملات وجسم JSON؟

مراجعة

مراجعة: حدّدت أنواع معاملات المسارات والاستعلامات والأجسام والاستجابات. ويمكن توسيع النمط نفسه ليشمل الموجّهات والبرمجيات الوسيطة.

الأسئلة الشائعة

هل درس «أنواع معالجات الموجّه و Request/Response» مجاني؟

نعم — نص درس «أنواع معالجات الموجّه و Request/Response» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة TypeScript Academy، انتقل إلى CoddyKit PRO. تتضمن دورة TypeScript Academy 3 دروس في المجموع.

ماذا ستتعلم في «أنواع معالجات الموجّه و Request/Response»؟

حدّد أنواع معالجات مسارات Express: المعاملات والاستعلامات وأجسام JSON، وأرسل استجابات ذات أنواع باستخدام res.json و DTOs قابلة لإعادة الاستخدام. تتمرن على TypeScript Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ TypeScript Academy؟

لا تُشترط خبرة سابقة. TypeScript Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 3.

كم من الوقت يستغرق درس «أنواع معالجات الموجّه و Request/Response»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس TypeScript Academy هذا؟

نعم. كل درس في TypeScript Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أنواع معالجات الموجّه و Request/Response
  2. التحقق من المخططات باستخدام zod والاستنتاج إلى TS
  3. البرمجيات الوسيطة للأخطاء وأنواع Result
← العودة إلى TypeScript Academy