روز ۴۹ یادگیری MERN Stack
من در روز ۴۹ از مسیر تبدیل شدن به یک مهندس full-stack هستم.
دیروز با JavaScript classes و دادههای فایل async کار کردم. امروز روی routing در بکاند تمرکز کردم. مسیرهای پویا (dynamic routing) و پارامترهای متغیر مسیر (variable path parameters) را مطالعه کردم.
وقتی پلتفرمهای بزرگی میسازید، مسیرهای استاتیک (static paths) کارایی ندارند. شما نمیتوانید برای هر محصول یا لیست اجاره در یک پایگاه داده، یک مسیر منحصربهفرد ایجاد کنید. در این صورت مقیاسپذیری غیرممکن خواهد بود.
امروز endpointهای منعطفی ساختم. این endpointها بر اساس دادههای موجود در URL تغییر میکنند.
استفاده از مسیرهای مبتنی بر الگوی تطبیق (pattern-matching routes)، پردازش سرور را سریعتر و تمیزتر میکند.
نحوه عملکرد آن در Express به این صورت است:
- یک دونقطه (colon) قبل از بخشی از مسیر قرار دهید.
- این کار به موتور میگوید که آن بخش یک متغیر است، نه یک رشته (string) ثابت.
- برای دسترسی به این دادهها در کد خود، از
req.paramsاستفاده کنید.
در فایل storeRouter.js خود، از این الگو استفاده کردم:
storeRouter.get('/home/:homeId', storeController.getHomeDetails);
عبارت :homeId مانند یک wildcard عمل میکند. این ویژگی اجازه میدهد تا یک مسیر، هزاران شناسه (ID) مختلف برای خانهها را مدیریت کند.
منبع: https://dev.to/ali_hamza_589ec7b3eb6688d/day-49-of-learning-mern-stack-2ape