متغیرهای محیطی در Node.js

متغیرهای محیطی مقادیری هستند که به محیط اجرای فرآیند Node.js مرتبط‌اند. این متغیرها برای پیکربندی رفتار برنامه، مدیریت مقادیر حساس (مانند کلیدها و رمزها)، و تعریف گزینه‌های زمان اجرا استفاده می‌شوند. Node.js APIهای داخلی برای تعامل با متغیرهای محیطی فراهم کرده و فایل‌های .env نیز روشی رایج برای مدیریت آن‌ها به‌شکل ساختاریافته هستند.

process.envCLI environment variablesdotenv filesvariable names and valuescomments and spacing

~2 دقیقه مطالعه • بروزرسانی ۶ دی ۱۴۰۴

1. متغیرهای محیطی CLI


Node.js مجموعه‌ای از متغیرهای محیطی دارد که می‌توانند برای سفارشی‌سازی رفتار آن تعریف شوند. این موارد در بخش CLI Environment Variables مستندات Node.js توضیح داده شده‌اند.


2. process.env


رابط اصلی برای کار با متغیرهای محیطی process.env است. این شیء شامل متغیرهای محیطی از پیش بارگذاری‌شده است که می‌توان آن‌ها را تغییر داد یا گسترش داد.


3. DotEnv و فایل‌های .env


فایل‌های .env فایل‌های متنی هستند که متغیرهای محیطی را در قالب کلید-مقدار تعریف می‌کنند. این فایل‌ها در زبان‌ها و پلتفرم‌های مختلف استفاده می‌شوند و توسط بستهٔ dotenv محبوب شدند.


MY_VAR_A = "my variable A"
MY_VAR_B = "my variable B"

نام این فایل‌ها معمولاً .env یا با .env شروع می‌شود (مانند .env.dev)، اما اجباری نیست.


4. نام متغیرها


نام‌های معتبر باید با عبارت منظم ^[a-zA-Z_]+[a-zA-Z0-9_]*$ مطابقت داشته باشند. آن‌ها می‌توانند شامل حروف، اعداد و زیرخط باشند اما نباید با عدد شروع شوند.


نمونه‌های معتبر: MY_VAR، MY_VAR_1، myVar. نمونه‌های نامعتبر: 1_VAR، my-var، VAR_#1.


5. مقادیر متغیرها


مقادیر می‌توانند هر متن دلخواه باشند و در صورت نیاز داخل کوتیشن قرار گیرند. مقادیر کوتیشن‌شده می‌توانند چندخطی باشند، در حالی که مقادیر بدون کوتیشن باید تک‌خطی باشند. همهٔ مقادیر در Node.js به‌صورت رشته تفسیر می‌شوند.


MY_SIMPLE_VAR = یک مقدار ساده
MY_EQUALS_VAR = "شامل علامت ="
MY_HASH_VAR = 'شامل علامت #'

6. فاصله‌ها


فاصله‌های اضافی اطراف کلیدها و مقادیر نادیده گرفته می‌شوند مگر اینکه داخل کوتیشن باشند.


7. کامنت‌ها


خط‌هایی که با # شروع می‌شوند کامنت هستند. علامت # داخل کوتیشن به‌عنوان کاراکتر عادی در نظر گرفته می‌شود.


# این یک کامنت است
MY_VAR = مقدار من # این هم کامنت است
MY_VAR_A = "# این کامنت نیست"

8. پیشوند export


کلمهٔ export می‌تواند قبل از تعریف متغیرها اضافه شود. این کلمه توسط Node.js نادیده گرفته می‌شود اما اجازه می‌دهد فایل در ترمینال‌های شل بدون تغییر استفاده شود.


export MY_VAR = مقدار من

9. گزینه‌های CLI


فایل‌های .env می‌توانند با گزینه‌های CLI به process.env بارگذاری شوند:


  • --env-file=file
  • --env-file-if-exists=file

10. APIهای برنامه‌نویسی


  • process.loadEnvFile: بارگذاری فایل .env و افزودن متغیرها به process.env.
  • util.parseEnv: تجزیهٔ محتوای خام فایل .env و بازگرداندن مقادیر آن.

نتیجه‌گیری


متغیرهای محیطی در Node.js روشی انعطاف‌پذیر برای پیکربندی برنامه‌ها فراهم می‌کنند. با استفاده از process.env، گزینه‌های CLI و فایل‌های .env، توسعه‌دهندگان می‌توانند تنظیمات، مقادیر حساس و رفتار زمان اجرا را به‌شکل تمیز و سازگار مدیریت کنند.


نوشته و پژوهش شده توسط دکتر شاهین صیامی