Menu
CoddyTech

الإعدادات

جزء من قسم واجهات REST API في رحلة Node.js على Coddy. الدرس 23 من 25.

على حاسوبك المحمول، يستمع الخادم على المنفذ 3000. تبدأه خدمة استضافة باستخدام node server.js وتختار المنفذ بنفسها، وتمرره في البيئة على هيئة PORT. كما تستدعي الاستضافة مسارًا مثل GET /health بين الحين والآخر، وتعيد تشغيل الخادم عندما يتوقف عن الاستجابة.

// MAX_UPLOAD_MB=5 node server.js
const maxUpload = Number(process.env.MAX_UPLOAD_MB ?? 2);
const shopName = process.env.SHOP_NAME ?? 'My Shop';

كل قيمة في process.env هي سلسلة نصية، و'5' + 1 تساوي '51'، لذا حوّل الأعداد باستخدام Number. اقرأ الإعدادات في ملف واحد، config.js، واستوردها في كل مكان آخر، حتى لا يتعامل أي شيء آخر مع process.env.

challenge icon

التحدي

سهل

في خدمة استضافة، يختار المضيف المنفذ ويمرّر الإعدادات إلى خادمك ضمن البيئة. اقرأ إعداداتك من البيئة في مكان واحد، وأضف مسارًا يستطيع المضيف استدعاءه للتحقق من أن الخادم يعمل.

  1. في config.js، اقرأ port من متغير البيئة PORT، وpageSize من PAGE_SIZE. تصل القيمتان كنص، لذا حوّلهما إلى أرقام. عندما يكون أحد المتغيرين غير موجود، احتفظ بالقيم الحالية: 3000 و10.
  2. في server.js، استورد config. ابدأ الخادم على config.port، واطبع رقم المنفذ الذي يستخدمه. عند استخدام PORT=8080، تعرض وحدة التحكم بالضبط:
    Task tracker API on port 8080
  3. في routes/tasks.js، استورد config أيضًا. في مسار القائمة، يستخدم الطلب الذي لا يتضمن ?limit= القيمة config.pageSize بدلًا من 10. أما ?limit= في الطلب، فتظل له الأولوية.
  4. في server.js، أضف GET /health خارج موجّه المهام. يعيد حالة 200 وهذا بالضبط:
    { "status": "ok" }

يعمل هذا الدرس باستخدام PORT=8080 وPAGE_SIZE=2.

جرّب ذلك: اضغط «العب»، وستطبع وحدة التحكم Task tracker API on port 8080. يعيد GET /api/v1/tasks مهمتين مع "total": 3 و"pages": 2. يعيد GET /api/v1/tasks?limit=3 المهام الثلاث كلها. يعيد GET /health القيمة { "status": "ok" }.

جرّب بنفسك

// الإعدادات التي تختلف بين حاسوبك المحمول والخادم.
// اقرأ كل إعداد من process.env، مع الإبقاء على هذه القيم كقيم افتراضية.
export const config = {
    port: 3000,
    pageSize: 10,
};
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس واجهات REST API

تدرّب بنفسك: Playground لـ Express