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

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

process.envCLI environment variablesdotenv filesvariable names and valuescomments and spacing

~3 دقیقه مطالعه · آخرین به‌روزرسانی ۶ دی ۱۴۰۴

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، توسعه‌دهندگان می‌توانند تنظیمات، مقادیر حساس و رفتار زمان اجرا را به‌شکل تمیز و سازگار مدیریت کنند.


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

مقالات مرتبط

آشنایی کامل با ماژول Cluster در Node.js و نحوه افزایش مقیاس‌پذیری سرور

ماژول Cluster در Node.js به توسعه‌دهندگان اجازه می‌دهد چندین پردازش همزمان ایجاد کنند که یک پورت سرور را به اشتراک می‌گذارند. این کار باعث استفاده بهتر از هسته‌های CPU و افزایش توان پردازش برنامه می‌شود. در این مقاله نحوه کار Cluster، مدیریت Workerها، تنظیمات مهم و مثال عملی را بررسی می‌کنیم.

ادامه

راهنمای جامع ماژول VM در Node.js (ماژول node:vm)

ماژول node:vm امکان کامپایل و اجرای کد جاوااسکریپت در کانتکست‌های ایزولهٔ V8 را فراهم می‌کند. این کانتکست‌ها مانند یک «سندباکس سبک» داخل برنامهٔ Node.js عمل می‌کنند و هرکدام globalThis مخصوص خود را دارند. این ماژول برای اجرای پویا، موتورهای قالب (Template Engines)، سیستم‌های افزونه (Plugin Systems)، REPLها و تست ایزولهٔ منطق بسیار مناسب است. اما نکتهٔ بسیار مهم: vm یک ابزار امنیتی نیست و نباید برای اجرای کدهای غیرقابل‌اعتماد استفاده شود.

ادامه

راهنمای جامع ماژول V8 در Node.js (ماژول node:v8)

راهنمای جامع ماژول V8 در Node.js (ماژول node:v8)

ادامه

راهنمای جامع Worker Threads در Node.js (ماژول node:worker_threads)

ماژول node:worker_threads امکان اجرای واقعی چندریسمانی (Multithreading) را در Node.js فراهم می‌کند. برخلاف مدل تک‌ریسمانی سنتی Node.js، Worker Threads اجازه می‌دهند کارهای سنگین CPU در ریسه‌های جداگانه اجرا شوند بدون اینکه حلقهٔ رویداد (Event Loop) مسدود شود. این ماژول از حافظهٔ اشتراکی، انتقال بدون کپی (Zero‑Copy)، کانال‌های پیام، Worker Pool، محدودیت منابع و ابزارهای همگام‌سازی پیشرفته پشتیبانی می‌کند. Worker Threads برای پردازش‌های محاسباتی سنگین ایده‌آل هستند، در حالی که I/O همچنان باید توسط ریسهٔ اصلی مدیریت شود.

ادامه

راهنمای جامع ماژول util در Node.js

ماژول node:util مجموعه‌ای از توابع کمکی قدرتمند برای استفاده در هستهٔ Node.js و همچنین توسعهٔ برنامه‌ها ارائه می‌دهد. این ماژول ابزارهایی برای دیباگ، بازرسی اشیا، تبدیل Callback ↔ Promise، قالب‌بندی رشته‌ها، بررسی انواع، مدیریت خطاها، رمزگذاری متن، پردازش MIME، پارس آرگومان‌های CLI، سیگنال‌های Abort، و ابزارهای متفرقه فراهم می‌کند. این ماژول یکی از جعبه‌ابزارهای اصلی و ضروری برای توسعه‌دهندگان Node.js است.

ادامه

راهنمای جامع ماژول URL در Node.js

ماژول node:url ابزارهایی برای تحلیل، ساخت، و دست‌کاری URLها در Node.js فراهم می‌کند. Node.js دو API برای کار با URL دارد: WHATWG URL API — استاندارد مدرن و سازگار با مرورگرها (توصیه‌شده). Legacy API — API قدیمی Node.js (غیرتوصیه‌شده). WHATWG URL API یک رابط تمیز، سازگار و قدرتمند برای کار با اجزای URL، پارامترهای query، الگوهای URL و حتی Blob URLها ارائه می‌دهد.

ادامه