الإعداد والتحقّق من متغيّرات البيئة
الإعداد والتحقّق من متغيّرات البيئة
تتصرّف التطبيقات الحقيقية بشكل مختلف عبر البيئات — المحلية والتجريبية والإنتاجية — وتحمل أسرارًا ككلمات مرور قواعد البيانات ومفاتيح API. ترميزها مباشرةً خطأ. تُحمّل حزمة @nestjs/config الرسمية الإعدادات من متغيّرات البيئة وملفّات .env، وتتيح لك التحقّق منها عند الإقلاع.
إعداد ConfigModule
ثبّت الحزمة واستورد ConfigModule في وحدة الجذر. تجعل isGlobal: true خدمة الإعداد قابلة للحقن في كل مكان دون إعادة استيراد:
افتراضيًا يقرأ ملف .env في جذر المشروع:
قراءة الإعدادات
احقن ConfigService واستدعِ get():
.gitignore وأودِع .env.example بالمفاتيح دون قيم حقيقية. الأسرار في إدارة المصادر خطر أمني جسيم.
إعدادات مخصّصة بمساحات أسماء
تجميع الإعدادات المرتبطة في كائنات إعداد مكتوبة الأنواع وذات مساحات أسماء يُبقي الأمور مرتّبة:
التحقّق من الإعدادات عند الإقلاع
أثمن ميزة: الفشل المبكر. إن غاب متغيّر مطلوب أو كان مُشوَّهًا، يجب أن يرفض التطبيق الإقلاع بدل الانهيار لاحقًا. مرّر مخطّط تحقّق (غالبًا Joi):
JWT_SECRET يوقف النشر فورًا برسالة واضحة — بدل أن يظهر كخطأ تشغيلي محيّر عند أوّل محاولة تسجيل دخول في الإنتاج.
الخلاصة
استخدم @nestjs/config لتحميل متغيّرات البيئة وملفّات .env، واحقن ConfigService لقراءتها، وجمّع الإعدادات بمساحات أسماء registerAs. والأهم، زوّد validationSchema ليفشل التطبيق مبكرًا عند الإقلاع حين يكون الإعداد ناقصًا أو غير صالح. أبقِ الأسرار خارج إدارة المصادر. تاليًا: خطّافات دورة الحياة وسياق التطبيق.