| کانال توسعهدهندگان وب |
عکس
عکس
در نمونهکد بالا در روش اشتباه، در هر بار اجرا شدن getServerSideProps یک کانکشن جدید به دیتابیس ساخته میشود و هرگز بسته یا دوباره استفاده نمیشود؛ این کار روی سرور واقعی (مثلاً در Next.js زیر بار ترافیک بالا) باعث Connection Exhaustion، افت شدید کارایی و حتی کرش شدن سرویس میشود.
در روش صحیح با استفاده از یک متغیر سراسری و کشکردن MongoClient (یا هر Driver دیگری)، در محیط development جلوی ساخت کانکشنهای تکراری بعد از هر Hot-Reload گرفته شده و در محیط production هم تنها یک بار به دیتابیس متصل میشویم و همه درخواستها از همان کانکشن/Pool استفاده میکنند.
به این ترتیب، هم مصرف منابع بهشدت کاهش پیدا میکند، هم زمان پاسخگویی API و صفحات server-side بهتر میشود و در عین حال ریسک Memory Leak و اشباع شدن کانکشنهای دیتابیس پایین میآید.
🔖 #Web #وب #Frontend #Backend
👤 Developix
💎 Channel: @DevelopixWeb
2 · 767 ·