Node.js Development

إدارة متغيرات البيئة في Node.js

Spread the love

جدول المحتويات

مقدمة إلى متغيرات البيئة

متغيرات البيئة هي أزواج مفتاح-قيمة ديناميكية توفر معلومات تكوين للتطبيقات. يتم تخزينها خارج رمز تطبيقك، مما يوفر العديد من المزايا الرئيسية:

  • الأمان: يجب عدم ترميز البيانات الحساسة مثل مفاتيح API وكلمات المرور أبدًا. توفر متغيرات البيئة طريقة آمنة لإدارة هذه الأسرار.
  • المرونة: تغيير سلوك التطبيق بسهولة دون تعديل قاعدة الكود. هذا أمر بالغ الأهمية لبيئات النشر المختلفة (التطوير، والاختبار، والإنتاج).
  • إمكانية النقل: تكييف تطبيقك مع بيئات مختلفة عن طريق ضبط متغيرات البيئة دون تغييرات في الكود.

يوضح هذا الدليل كيفية الوصول إلى متغيرات البيئة في جافا سكريبت، مع التركيز على بيئات Node.js.

الوصول إلى متغيرات البيئة باستخدام process.env

يوفر Node.js وصولاً مدمجاً إلى متغيرات البيئة من خلال كائن process.env. هذه هي الطريقة الأكثر شيوعًا و موصى بها لبيئات الإنتاج.


// الحصول على متغير بيئة محدد
const apiKey = process.env.API_KEY;

// التحقق مما إذا كان متغير البيئة موجودًا وتوفير قيمة افتراضية
const port = process.env.PORT || 3000; 

// الوصول إلى متغيرات متعددة
const dbConfig = {
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME
};

// مثال على معالجة متغيرات البيئة المفقودة برسالة خطأ أكثر وصفًا
if (!dbConfig.host) {
    throw new Error("لم يتم تهيئة مضيف قاعدة البيانات. يرجى تعيين متغير البيئة DB_HOST.");
}

console.log("مفتاح API:", apiKey);
console.log("المنفذ:", port);
console.log("تهيئة قاعدة البيانات:", dbConfig);

تذكر أن تعيين متغيرات البيئة يعتمد على نظام التشغيل. على Linux/macOS، استخدم export (مثل، export API_KEY="your_api_key")؛ على Windows، استخدم set.

استخدام حزمة dotenv

للتطوير، تبسط حزمة dotenv إدارة متغيرات البيئة من ملف .env. هذا يحافظ على المعلومات الحساسة خارج نظام التحكم في الإصدار.

  1. التثبيت: npm install dotenv
  2. ملف .env: أنشئ ملف .env (أضفه إلى .gitignore الخاص بك!) في الدليل الجذر للمشروع:

API_KEY=your_api_key
DATABASE_URL=your_database_url
PORT=3001
  1. الاستخدام:

require('dotenv').config();

const apiKey = process.env.API_KEY;
const databaseUrl = process.env.DATABASE_URL;
const port = process.env.PORT;

console.log("مفتاح API:", apiKey);
console.log("عنوان URL لقاعدة البيانات:", databaseUrl);
console.log("المنفذ:", port);

يقوم dotenv.config() بتحميل المتغيرات من .env إلى process.env. أعطِ الأولوية دائمًا لمتغيرات بيئة النظام على .env لنشر الإنتاج.

أفضل ممارسات الأمان

  • لا تقم أبدًا بترميز المعلومات الحساسة. استخدم دائمًا متغيرات البيئة.
  • أضف .env إلى .gitignore الخاص بك. منع الالتزامات العرضية للبيانات الحساسة.
  • استخدم حل لإدارة الأسرار لبيئات الإنتاج لتخزين البيانات الحساسة والوصول إليها بأمان.
  • تحقق من صحة و تطهير جميع متغيرات البيئة قبل استخدامها في تطبيقك لمنع الثغرات الأمنية.
  • راجع وقم بتحديث ممارسات الأمان الخاصة بك بانتظام.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *