~3 دقیقه مطالعه • بروزرسانی ۸ دی ۱۴۰۴
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. کلاسهای مرتبط:
FormDataHeadersRequestResponse
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های سازگار با مرورگر هستند. این امکانات باعث میشوند توسعهدهندگان بتوانند هم در محیط سرور و هم در محیطهای مشابه مرورگر از یک مجموعهٔ یکپارچهٔ ابزارها استفاده کنند.
نوشته و پژوهش شده توسط دکتر شاهین صیامی