يوفر متغير البيئة معلومات حول البيئة التي تعمل فيها العملية. يقومون بتهيئة منافذ الخادم واتصالات قواعد البيانات ، وإخفاء البيانات الحساسة مثل مفاتيح واجهة برمجة التطبيقات ، وغير ذلك الكثير.
تختلف طريقة NestJS لقراءة متغيرات البيئة عن حزمة dotenv القياسية لـ NodeJS.
تتيح لك وحدة تهيئة NestJS إدارة متغيرات البيئة الخاصة بك في خطوات قليلة فقط.
الخطوة 1: تثبيت التبعيات
يوفر NestJS ملف @ nestjs / config الحزمة التي تستخدم دوتنف حزمة تحت غطاء محرك السيارة. تقوم حزمة التبعية الصفرية هذه بتحميل متغيرات البيئة من ملف .env ملف في عملية. env. كائن process.env هو متغير عام يتم إدخاله في وقت التشغيل لاستخدام التطبيق الخاص بك.
قم بتثبيت حزمة تهيئة NestJS عن طريق تشغيل:
تثبيت npm تضمين التغريدة/config
تعمل حزمة تهيئة NestJS من خلال تعريض وحدة التكوين وخدمة التكوين للتطبيق. تحدد وحدة التكوين ملف .env قم بتقديم الطلب لقراءته. في الوقت نفسه ، تعرض خدمة التكوين المعلومات الموجودة داخل ملف .env ملف إلى بقية التطبيق.
الخطوة الثانية: إنشاء ملفات ENV
يتيح لك تخزين متغيرات البيئة في ملف الوصول إليها بسهولة من أي لغة، عبر أنظمة تشغيل مختلفة. يمكنك التحكم في هذه الإصدارات
.env الملفات ، بحيث تزيد من إمكانية نقل المشروع ويمكن أن تخفف من مشاكل تصحيح الأخطاء.يختلف أسلوب NestJS لإنشاء ملفات .env عن توصية dotenv الرسمية. وفقًا لوثائق dotenv ، يجب ألا تنشئ أكثر من ملف .env واحد في أحد التطبيقات. يتيح لك NestJS إنشاء ملفات .env متعددة بأسماء مختلفة.
كممارسة جيدة ، يجب عليك دائمًا إنشاء ملفات .env في الدليل الجذر لمشروعك وتضمينها في ملف .gitignore ملف.
لا توجد طريقة خاصة لإنشاء ملف .env - فقط قم بإنشائه وتعديله باستخدام محرر النصوص العادي - ولكن يجب أن يبدأوا بـ .env. فمثلا، .env.development.
الخطوة 3: إعداد وحدة التكوين
اتبع الخطوة أدناه لإعداد وحدة التكوين الخاصة بك بشكل عام وتحديد ملف .env مسارات:
- في الوحدة النمطية الجذرية لمشروعك (app.modue.ts) ملف الاستيراد ConfigModule من @ nestjs / config.
- يضيف ConfigModule لك الواردات مجموعة واستدعاء forRoot طريقة على ذلك.
- قم بتمرير كائن التكوين إلى ملف forRoot طريقة ، مع isGlobal الملكية ل حقيقي. يشارك هذا الخيار التكوين من خلال الوحدات النمطية الأخرى في تطبيقك ، مما يعني أنك لن تضطر إلى إعداده أكثر من مرة.
- حدد الخاص بك envFilePath في كائن التكوين الخاص بك. يمكن أن تكون هذه الخاصية إما سلسلة (إذا كان لديك واحدة .env file) أو مصفوفة تحتوي على كل ما تبذلونه من ملفات .env وسيخبر وحدة التكوين بالملفات التي يجب البحث عنها.
// app.module.ts
@وحدة({
الواردات: [
ConfigModule.forRoot({
isGlobal: حقيقي,
envFilePath: 'اسم (أسماء) ملف (ملفات) .env الخاص بك',
}),
الخطوة 4: استخدام خدمة التكوين لقراءة متغيرات البيئة
للوصول إلى قيم التكوين ، ابدأ بالاستيراد ConfigService من @ nestjs / config. ضخه في منشئ الطبقة بالتصريح عن أ خاص متغير ومخصص ConfigService حسب نوعه.
فمثلا:
البناء(التكوين الخاص: ConfigService) {}
للوصول إلى متغير ، اتصل بـ احصل على طريقة على ConfigService على الخاص بك خاص عامل. قم بتمرير نوع البيانات الذي تريده كعنصر عام ، واسم متغير البيئة الذي تريد الوصول إليه.
فمثلا:
const envVar = this.config.get<سلسلة>('ENV_VALUE');
ال ConfigService يبحث عن قيمة بالاسم "ENV_VALUE" ويعيد قيمتها.
لاحظ أنه إذا كان اثنان .env تحتوي الملفات على نفس اسم الخاصية ، يتم تحديد أول ملف في ملف envFilePath سوف تأخذ الأسبقية.
أهمية متغيرات البيئة
تعد متغيرات البيئة جزءًا أساسيًا من البرنامج ، لا سيما في التطبيقات الأكثر تعقيدًا. إنها تتيح لك التحكم في تكوين برنامجك من خلال آلية مشتركة سهلة الفهم.
يمكنك استخدام متغيرات البيئة للتحكم في جميع جوانب التكوين. من إعدادات قاعدة البيانات المختلفة إلى البيانات الحساسة مثل مفاتيح API وبيانات الاعتماد ، فإنها تتيح لك تغيير التكوين دون لمس كود المصدر الأساسي.