تعد المتغيرات البيئية ضرورية لتكوين تطبيقات Node.js ، بحيث يمكنك تكييف الإعدادات لمختلف البيئات مثل التطوير والاختبار والإنتاج. على الرغم من أنه يمكنك تحديد المتغيرات البيئية مباشرة في نظامك أو محطةك ، إلا أن هناك نهجًا أنيقًا ومنظمًا لاستخدام أ .ENV ملف. باستخدام هذا الملف ، يمكنك حفظ جميع المتغيرات البيئية في موقع مركزي ، والحفاظ عليها منفصلة عن الكود الخاص بك وجعل من السهل إدارة التكوينات المختلفة.
في هذا الدليل الشامل ، نتعامل مع عالم المتغيرات البيئية في Node.js لاستكشاف دور الشعبية dotenv
حزمة واكتشف كيف تستخدمه بفعالية. سنقوم أيضًا بفحص النوع الأصلي للوصول إلى المتغيرات المحيطة في Node.js 20+ باستخدام وحدات ESM (ECMASCRIPT). لنبدأ!
جدول المحتويات #
مقدمة #
تخيل إنشاء تطبيق node.js يجب أن يتصل بقاعدة بيانات. يجب حفظ معلومات تسجيل دخول قاعدة البيانات مثل المضيف واسم المستخدم وكلمة المرور واسم قاعدة البيانات في مكان ما. يعد إنشاء معلومات تسجيل الدخول هذه مباشرةً في الكود الخاص بك بمثابة خطر أمان ويجعل من الصعب إدارة التكوينات المختلفة لبيئات مختلفة.
هذا هو المكان الذي تنقذ فيه المتغيرات البيئية. يمكنك حفظ المعلومات السرية مثل مفاتيح API ومعلومات تسجيل قاعدة البيانات وإعدادات التكوين الأخرى كمتغيرات بيئية والحفاظ عليها منفصلة عن قاعدة التعليمات البرمجية. هذا يحسن الأمان ويسهل توفير التطبيق الخاص بك في بيئات مختلفة مع تكوينات مختلفة.
ملف .env هو ملف نصي بسيط يخزن المتغيرات البيئية الخاصة بك بتنسيق قيمة مفتاح. إنها اتفاقية واسعة النطاق في النظام البيئي Node.js لإدارة المتغيرات البيئية ، وهناك حزمة NPM شهيرة تسمى dotenv
هذا ببساطة يجعل هذه المتغيرات أسهل في الاستخدام. كما أنه يساعدك على الوصول إلى جزء التكوين من التطبيق المكون من 12 عامل. يوضح عامل التكوين لتطبيق العامل المكون من 12: “يتطلب فصلًا صارمًا عن التكوين من الرمز. التكوين يختلف اختلافا كبيرا بين الحرمان ، الكود لا. “
متطلبات #
قبل أن نغمر نفسك في الكود وندرس كيفية استخدام المتغيرات المحيطة من ملف .env ، تأكد من أن لديك المتطلبات التالية:
- Node.js 20 أو لاحقًا مثبتة: سنستخدم أحدث وظائف Node.js بحيث يكون الإصدار الحالي للإصدار الحالي ضروريًا. يمكنك التحقق من إصدار Node.js عن طريق التشغيل
node --version
في المحطة الخاصة بك. - فهم أساسي لـ Node.js و NPM: يجب أن تكون على دراية بتنفيذ البرامج النصية Node.js وتثبيت حزم NPM باستخدام هذا
npm install
يأمر. - المعرفة الأساسية بوحدات JavaScript: يتم استخدام واردات ESM في هذا الدليل. هذا هو المعيار الجديد لوحدات JavaScript ويتم دعمه في Node.js 14 وأعلى.
في القسم التالي ، ستتعلم كيفية تلقي المتغيرات البيئية باستخدام متغيرات البيئة dotenv
طَرد.
استدعاء المتغيرات البيئية مع dotenv #
Dotenv هي وحدة الاعتماد الصفري ، والمتغيرات المحيطة لـ Lädt .env
ملف في process.env
. هذه طريقة بسيطة ومريحة لإدارة المتغيرات المحيطة ، والحفاظ عليها منفصلة عن الكود الخاصة بهم وتبسيط توفير تطبيقاتها في بيئات مختلفة.
تثبيت dotenv #
ابدأ مع dotenv
يجب عليك تثبيته أولاً. يمكنك تثبيته في المحطة الخاصة بك مع الأمر التالي:
npm install dotenv
يقوم هذا الأمر بتثبيت dotenv
حزمة من تسجيل NPM وأضفه إلى مشروعك package.json
ملف كاعتماد. وقت كتابة هذا التقرير dotenv
في الإصدار 16.4.5.
إنشاء ملف .env #
بعد تثبيتها dotenv
يمكنك إنشاء حزمة .env
ملف في الدليل العادي لمشروعك. يحتوي هذا الملف على جميع متغيراتك البيئية. شكل .env
الملف بسيط. يمثل كل سطر متغيرًا محيطًا ، حيث يتم فصل المفتاح والقيمة بعلامة متساوية (=
). على سبيل المثال:
DATABASE_NAME=quotes
DATABASE_USER=quotes_user
متغيرات بيئة التحميل #
لتحميل المتغيرات المحيطة من الخاص بك إلى .env
ملف في process.env
عليك أن تتصل بهم config
طريقة من dotenv
الوحدة النمطية. يجب أن يتم ذلك في بداية طلبك قبل تنفيذ رمز آخر. يكون المكان العام حيث يمكنك استدعاء طريقة التكوين عند نقطة إدخال التطبيق الخاص بك ، وهو عادة index.js
أو app.js
. على سبيل المثال:
import 'dotenv/config';const dbName = process.env.DATABASE_NAME;
const dbUser = process.env.DATABASE_USER;
console.log(`Database name is ${dbName} and database username is ${dbUser}`);
في الكود أعلاه ، مثال dotenv/config
تستدعي استدعاء الاستيراد المتغيرات المحيطة من .env
ملف في process.env
. ثم أضف ثوابت dbName
و dbUser
للحصول على المتغيرات البيئية ذات الصلة وعرضها على وحدة التحكم console.log
. إذا كان تطبيقًا حقيقيًا ، مثل تطبيق express.js ، لكانوا قد استخدموا هذه المتغيرات لسحق الاتصال بقاعدة البيانات.
إذا قمت بتشغيل ما سبق أعلاه index.js
ملف مع node index.js
وذيل الصلة .env
ملف يتم عرض الإصدار التالي:
إذا كنت تريد استخدام اسم ملف مختلف عن .env
. يمكنك فقط استيراد dotenv
وحدة مع import dotenv from 'dotenv';
يمكنك استخدام العرف .env
ملف (لا .env
) ، يمكنك تسليم المسار إلى الملف كوسيطة إلى config
طريقة مثل أدناه:
dotenv.config({ path: './.env.example' });
لاستخدام طريقة أخرى مفيدة dotenv
بدون الاستيراد أو المتطلبات ، يجب تسليمها إلى أمر العقدة. على سبيل المثال لملف يسمى index-no-imports.js
الذي مثل المحتوى التالي مع نفسه .env
ملف:
const dbName = process.env.DATABASE_NAME;
const dbUser = process.env.DATABASE_USER;
console.log(`Database name is ${dbName} and database user is ${dbUser}`);
يمكنك الدخول في المتغيرات المحيطة عن طريق التنفيذ:
node --require dotenv/config index-no-imports.js
Dotenv لديه نظام بيئي صغير. هناك dotenvx ، يمكنك تشفير وفك تشفير متغيراتك البيئية ، وأنت dotenv-valut
ل. وهي مدعومة من قبل شركات مثل Warp و COSOS و Automatization. كما أنه يحتوي على قناة على YouTube ومقطع فيديو يشرح كيفية استخدامه. هناك العديد من الأمثلة الرسمية التي تستخدم مشاريع مثل Next.js.
في القسم التالي ، ستتعرف على النوع الأصلي للوصول إلى المتغيرات المحيطة في Node.js 20+.
المتغيرات البيئية الأصلية 20+ #
بواسطة node.js 20+ هناك طريقة أصلية للتمكن من الوصول إلى المتغيرات البيئية دون وصول
يجب تثبيت حزمة NPM قدر الإمكان dotenv.
من العقدة 20.6.0 واحدة من أبرز التغييرات هو الدعم المتكامل لملفات .env
استخدم ملف -ENV في Node CLI #
مع نفس .env
ملف و index-no-imports.js
ملف من المثال أعلاه. يمكنك استخدام المتغير المحيط من .env
ملف في كل js
ملف مع الأمر التالي:
node --env-file .env index-no-imports.js
يصبح:
هذا يتوافق بالضبط مع القضية أعلاه دون الاستيراد dotenv
في الملف أو في سطر الأوامر. هذا ممكن من Knot 20.6.0 لأنه تمت إضافة الدعم المتكامل لملفات .env.
يمكنك تحديث الخاص بك .env
الملف وقم بتنفيذ الرمز مرة أخرى وسيقوم بتقاط التحديثات المحدثة
المتغير البيئي. حتى تتمكن من الوصول إلى المتغيرات البيئيةimport.meta.env
في node.js 20+. يمكنك استخدام NodeMon لإعادة تشغيل التطبيقات الخاصة بك عندما أ .js
يتغير الملف أو حتى إذا أ .env
يتغير الملف مع الساعات الصحيحة.
للإشارة إلى أنك ستجد امتحانات التعليمات البرمجية في مستودع GitHub هذا.
لا يزال Dotenv شائعًا # #
في ضوء حقيقة أن Node.js 20+ تقدم خيارًا أصليًا للوصول إلى المتغيرات البيئية منذ سبتمبر 2023 (أكثر من عام عند كتابة منشور المدونة هذا) ، قد تتساءل لماذا يجب أن تتعامل مع Dotenv؟ إنه سؤال صالح مع إجابة صالحة:dotenv
لا تزال الحزمة الأكثر شعبية للحصول على المتغيرات المحيطة من ملف .env.
مع أكثر من 45 مليون تنزيل في الأسبوع من نوفمبر 2023 ،
dotenv
هو اختبار kattest وحزمة واسعة في النظام البيئي node.js.
يمكنك رؤية مقارنة بين Dotenv و Knoten-envile و Dot-ENV وفقًا لاتجاهات NPM التالية:
كما ترون ، فإن Dotenv هو الفائز الواضح مع تنزيلات أسبوعية بشكل كبير من ملف العقدة المنافس. على الرغم من أن DOT-ENV هي مكتبة مماثلة ، إلا أن التنزيلات ضئيلة. dot-env
لم يتم تحديثه في السنوات الـ 11 الماضية ، بينما dotenv
هو مشروع نشط للغاية على جيثب.
دبلوم #
في هذا الدليل الشامل ، تعلمت كيفية الوصول إلى المتغيرات البيئية
ملف .env في node.js. لقد درست طريقتين ، الأول مع حزمة dotenev الشهيرة والثاني مع الأم --env-file
متوفر في node.js 20+. مع معرفة كلتا الطريقتين ، يمكنك الآن اتخاذ خيار جيد ، اعتمادًا على متطلبات مشروعك.
إذا كنت تعمل في مشروع جديد ، فإنني أوصي باختيار السكان الأصليين
--env-file
الطريقة لأنها جزء من node.js ولا تتطلب التبعية الخارجية. ومع ذلك ، إذا كنت تعمل على مشروع موجود بالفعلdotenv
ليست هناك حاجة للتغيير.
في النهاية ، يحقق كلاهما نفس الهدف المتمثل في الوصول إلى المتغيرات البيئية من ملف .env. أخيرًا ، يمكنك التبديل إلى النوع الأصلي للوصول إلى المتغيرات المحيطة في Node.js 20+ ، حيث إنه جزء من Core.js ولا يتطلب تبعية خارجية. هذا يجعل تطبيقك أسهل ويقلل من عدد التبعيات.