
دنیای زبانهای کدنویسی و توسعه نرمافزار
ماژول node:inspector در Node.js یک API برای تعامل با V8 Inspector فراهم میکند. این ماژول امکان اتصال به پروتکل Chrome DevTools را میدهد و توسعهدهندگان میتوانند از آن برای دیباگ، پروفایلینگ CPU و حافظه، و جمعآوری رویدادهای شبکه استفاده کنند. Inspector هم نسخهٔ مبتنی بر Promise و هم نسخهٔ Callback دارد و ابزار قدرتمندی برای بررسی وضعیت اجرای برنامه است.
Node.js امکانات متعددی برای نوشتن برنامههای بینالمللی دارد. این امکانات شامل توابع حساس به locale در استاندارد ECMAScript، شیء Intl، متدهای locale-aware مانند localeCompare و toLocaleString، پشتیبانی از دامنههای بینالمللی در URL، و ابزارهایی مانند TextDecoder و RegExp Unicode Property Escapes است. این قابلیتها توسط موتور V8 و کتابخانه ICU (International Components for Unicode) پیادهسازی میشوند. بسته به نحوهٔ ساخت Node.js، میتوان مجموعهٔ دادههای ICU را بهصورت کامل یا محدود در باینری قرار داد.
ماژولهای CommonJS روش اصلی بستهبندی کد جاوااسکریپت در Node.js هستند. هر فایل در Node.js بهعنوان یک ماژول جداگانه در نظر گرفته میشود و میتواند با استفاده از require() ماژولهای دیگر را بارگذاری کند. خروجی هر ماژول از طریق exports یا module.exports در دسترس قرار میگیرد. این سیستم امکان سازماندهی کد، مدیریت وابستگیها، و استفادهٔ مجدد از ماژولها را فراهم میکند.
ماژولهای ECMAScript (ESM) استاندارد رسمی برای بستهبندی کد جاوااسکریپت هستند. این ماژولها با استفاده از دستورهای import و export تعریف میشوند و در Node.js بهطور کامل پشتیبانی میشوند. Node.js علاوه بر پشتیبانی از ESM، امکان تعامل با سیستم قدیمی CommonJS را نیز فراهم میکند. توسعهدهندگان میتوانند با استفاده از پسوند .mjs، فیلد "type": "module" در فایل package.json یا فلگ --input-type=module فایلها را بهعنوان ماژول ECMAScript مشخص کنند. این ماژولها قابلیتهای مدرن مانند import.meta، بارگذاری پویا (import())، و پشتیبانی از JSON و WASM را ارائه میدهند.
ماژول node:module در Node.js مجموعهای از ابزارها و متدهای عمومی برای تعامل با سیستم ماژولها فراهم میکند. این API امکان بررسی ماژولهای داخلی، ایجاد تابع require در محیط ESM، یافتن فایلهای package.json، ثبت hooks سفارشی برای تغییر رفتار بارگذاری ماژولها، همگامسازی خروجیهای CommonJS و ESM، و استفاده از cache کامپایل برای افزایش سرعت را فراهم میکند.
یک Package در Node.js مجموعهای از فایلها و پوشههاست که توسط فایل package.json توصیف میشود. این فایل مشخص میکند که ماژولها چگونه باید بارگذاری شوند، نوع ماژولها (CommonJS یا ES Module) چیست، و چه مسیرهایی بهعنوان entry point یا exports در دسترس هستند. Node.js از دو سیستم ماژول (CommonJS و ES Modules) پشتیبانی میکند و با استفاده از فیلدهای type, main, exports, و imports در package.json میتوان رفتار بارگذاری را کنترل کرد.
Node.js از دو روش برای اجرای فایلهای TypeScript پشتیبانی میکند: استفاده از بستههای شخص ثالث برای پشتیبانی کامل از تمام ویژگیهای TypeScript، یا استفاده از قابلیت داخلی برای حذف نوعها (type stripping) که سبکتر است. در حالت داخلی، Node.js تنها نوعها را حذف میکند و هیچ بررسی یا تبدیل پیچیدهای انجام نمیدهد. برای استفاده از تمام قابلیتهای TypeScript، از ابزارهایی مانند tsx یا سایر کتابخانههای مشابه باید استفاده شود.
ماژول node:net یک API شبکهٔ ناهمگام برای ایجاد سرورهای TCP یا IPC و همچنین کلاینتها فراهم میکند. این ماژول امکان کار با سوکتها، مدیریت ارتباطات، و کنترل دسترسی به آدرسهای IP را میدهد. از طریق کلاسهایی مانند net.Server, net.SocketAddress, و net.BlockList میتوان رفتار شبکه را بهطور دقیق مدیریت کرد.
ماژول node:os مجموعهای از متدها و ویژگیها برای دسترسی به اطلاعات سیستمعامل فراهم میکند. این ماژول امکان بررسی معماری CPU، حافظه، مسیرهای پیشفرض، اطلاعات کاربر، و ثابتهای سیستمی مانند سیگنالها و خطاها را میدهد. استفاده از این ماژول به توسعهدهندگان کمک میکند تا برنامههای خود را با شرایط سیستمعامل هماهنگ کنند.
ماژول node:path مجموعهای از ابزارها برای کار با مسیرهای فایل و پوشه فراهم میکند. این ماژول امکان تجزیه، ترکیب، نرمالسازی، و بررسی مسیرها را بهصورت سازگار با سیستمعاملهای مختلف (Windows و POSIX) میدهد. همچنین نسخههای اختصاصی path.win32 و path.posix برای نتایج یکسان در هر سیستمعامل ارائه شدهاند.
ماژول node:perf_hooks در Node.js پیادهسازی بخشی از W3C Web Performance APIs و همچنین APIهای اختصاصی برای اندازهگیری عملکرد در محیط Node.js را فراهم میکند. این ماژول ابزارهایی برای اندازهگیری زمان با دقت بالا، ثبت رویدادهای عملکرد، و تحلیل چرخهٔ رویدادها ارائه میدهد.
مدل دسترسی در Node.js مکانیزمی برای محدود کردن دسترسی پردازش به منابع سیستم است. این مدل بهصورت یک "کمربند ایمنی" عمل میکند تا از تغییرات ناخواسته در فایلها یا استفاده از منابعی که دسترسی به آنها صریحاً داده نشده جلوگیری کند. با این حال، این مدل امنیت کامل در برابر کدهای مخرب ارائه نمیدهد.