Global Objects در Node.js: اشیاء سراسری و ابزارهای کاربردی

در Node.js مجموعه‌ای از اشیاء و متغیرهای سراسری وجود دارد که در همهٔ ماژول‌ها در دسترس هستند. برخی از این متغیرها مانند __dirname و __filename فقط در محدودهٔ ماژول‌های CommonJS معتبرند. علاوه بر این، کلاس‌ها و ابزارهایی مانند AbortController، Buffer، BroadcastChannel، fetch و localStorage به‌صورت سراسری در محیط Node.js قابل استفاده‌اند. این اشیاء ترکیبی از قابلیت‌های اختصاصی Node.js و APIهای سازگار با مرورگر هستند.

__dirname / __filename / exports / module / requireAbortController / AbortSignalBuffer / BlobBroadcastChannel / MessageChannel / MessagePortconsole / clearTimeout / clearInterval / clearImmediate

~3 min read • Updated Dec 29, 2025

1. متغیرهای CommonJS


این متغیرها فقط در محدودهٔ ماژول‌های CommonJS معتبرند:


  • __dirname: مسیر پوشهٔ جاری ماژول.
  • __filename: مسیر کامل فایل جاری.
  • exports: خروجی ماژول.
  • module: شیء ماژول جاری.
  • require(): برای وارد کردن ماژول‌ها.

2. AbortController و AbortSignal


ابزاری برای لغو عملیات Promise-based. متدهای مهم:


  • abort(): فعال‌سازی سیگنال لغو.
  • AbortSignal.abort(): ایجاد سیگنال لغو‌شده.
  • AbortSignal.timeout(): لغو پس از مدت مشخص.
  • AbortSignal.any(): ترکیب چند سیگنال.

3. Buffer و Blob


Buffer برای مدیریت داده‌های باینری استفاده می‌شود. Blob داده‌های فایل‌مانند را مدیریت می‌کند.


4. ابزارهای سازگار با مرورگر


  • BroadcastChannel: ارتباط بین کانال‌ها.
  • MessageChannel، MessagePort، MessageEvent: ارتباط بین نخ‌ها یا فرآیندها.
  • EventTarget و CustomEvent: مدیریت رویدادها.

5. توابع زمان‌بندی


  • clearTimeout()
  • clearInterval()
  • clearImmediate()

6. console


برای چاپ خروجی در stdout و stderr استفاده می‌شود.


7. fetch و کلاس‌های مرتبط


پیاده‌سازی سازگار با مرورگر برای درخواست‌های HTTP. کلاس‌های مرتبط:


  • FormData
  • Headers
  • Request
  • Response

8. global و globalThis


global شیء سراسری قدیمی است. globalThis جایگزین مدرن و استاندارد آن است.


9. localStorage


ذخیره‌سازی داده‌ها به‌صورت کلید-مقدار، مشابه مرورگر. محدودیت: ۱۰ مگابایت.


10. Navigator


پیاده‌سازی جزئی از API مرورگر. ویژگی مهم: navigator.hardwareConcurrency برای نمایش تعداد پردازنده‌های منطقی.


نتیجه‌گیری


اشیاء سراسری در Node.js ترکیبی از قابلیت‌های اختصاصی و APIهای سازگار با مرورگر هستند. استفادهٔ صحیح از این ابزارها باعث افزایش کارایی و ساده‌تر شدن توسعهٔ برنامه‌ها می‌شود.


1. ویژگی‌های navigator


  • navigator.language: زبان ترجیحی Node.js بر اساس ICU.
  • navigator.languages: آرایه‌ای از زبان‌های ترجیحی.
  • navigator.platform: پلتفرم جاری.
  • navigator.userAgent: نام و نسخهٔ Node.js.
  • navigator.locks: مدیریت قفل‌ها برای منابع مشترک.

2. Performance API


کلاس‌های PerformanceEntry، PerformanceMark، PerformanceMeasure و PerformanceObserver برای اندازه‌گیری و مانیتورینگ عملکرد استفاده می‌شوند. شیء performance از ماژول perf_hooks ارائه می‌شود.


3. process


شیء process اطلاعات و کنترل اجرای Node.js را فراهم می‌کند.


4. queueMicrotask()


یک microtask را در صف اجرا قرار می‌دهد. مشابه process.nextTick() اما توسط V8 مدیریت می‌شود.


5. Stream APIs


  • ReadableStream: جریان خواندن.
  • WritableStream: جریان نوشتن.
  • کلاس‌های مرتبط مانند ReadableStreamDefaultReader و WritableStreamDefaultWriter.

6. Storage APIs


  • sessionStorage: ذخیره‌سازی در حافظه با محدودیت ۱۰ مگابایت.
  • localStorage: ذخیره‌سازی دائمی در فایل.
  • Storage: پیاده‌سازی سازگار با مرورگر.

7. structuredClone()


متد استاندارد WHATWG برای کپی عمیق اشیاء.


8. Encoding و Decoding


  • TextEncoder و TextDecoder: رمزگذاری و رمزگشایی متن.
  • نسخه‌های Stream مانند TextEncoderStream و TextDecoderStream.

9. URL APIs


  • URL: کلاس استاندارد برای مدیریت آدرس‌ها.
  • URLSearchParams: مدیریت پارامترهای query.
  • URLPattern: الگوهای URL (آزمایشی).

10. WebAssembly و WebSocket


WebAssembly برای اجرای کدهای سطح پایین و WebSocket برای ارتباط بلادرنگ سازگار با مرورگر استفاده می‌شوند.


نتیجه‌گیری


Global Objects در Node.js ترکیبی از قابلیت‌های اختصاصی و APIهای سازگار با مرورگر هستند. این امکانات باعث می‌شوند توسعه‌دهندگان بتوانند هم در محیط سرور و هم در محیط‌های مشابه مرورگر از یک مجموعهٔ یکپارچهٔ ابزارها استفاده کنند.


Written & researched by Dr. Shahin Siami