
در این بخش، به دنیای برنامهنویسی، الگوریتمها، شبکه و زیرساختهای فناوری میپردازیم
ماژول 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 مکانیزمی برای محدود کردن دسترسی پردازش به منابع سیستم است. این مدل بهصورت یک "کمربند ایمنی" عمل میکند تا از تغییرات ناخواسته در فایلها یا استفاده از منابعی که دسترسی به آنها صریحاً داده نشده جلوگیری کند. با این حال، این مدل امنیت کامل در برابر کدهای مخرب ارائه نمیدهد.
شیء process در Node.js اطلاعات و کنترل مربوط به پردازش جاری را فراهم میکند. این شیء یک نمونه از EventEmitter است و رویدادهای مختلفی مانند exit, beforeExit, uncaughtException, و سیگنالهای سیستم را مدیریت میکند. همچنین متدها و ویژگیهای متنوعی برای دسترسی به معماری CPU، آرگومانهای خط فرمان، حافظه، و تغییر مسیر کاری ارائه میدهد.
ماژول punycode در Node.js پیادهسازی سادهای از استاندارد Punycode (RFC 3492) است که برای تبدیل نامهای دامنهٔ بینالمللی (IDN) به رشتههای ASCII استفاده میشود. از آنجا که نامهای میزبان در URLها باید فقط شامل کاراکترهای ASCII باشند، دامنههایی با کاراکترهای غیر-ASCII باید با استفاده از Punycode رمزگذاری شوند. این ماژول از نسخهٔ 7.0.0 به بعد منسوخ شده و در نسخههای آینده حذف خواهد شد. توسعهدهندگان باید به جای آن از کتابخانهٔ مستقل Punycode.js یا APIهای WHATWG URL استفاده کنند.
ماژول readline در Node.js یک رابط برای خواندن دادهها از جریانهای Readable (مانند process.stdin) بهصورت خطبهخط فراهم میکند. این ماژول برای ساخت رابطهای خط فرمان (CLI)، دریافت ورودی کاربر، و پردازش فایلها بهصورت خطی بسیار کاربردی است. Node.js دو API برای استفاده از این ماژول ارائه میدهد: نسخهٔ مبتنی بر Promise و نسخهٔ مبتنی بر Callback.
ماژول repl در Node.js یک محیط تعاملی Read-Eval-Print-Loop فراهم میکند که هم بهصورت مستقل و هم درون برنامهها قابل استفاده است. این محیط به توسعهدهندگان امکان میدهد کد جاوااسکریپت را خطبهخط اجرا کنند، نتایج را مشاهده کنند، و با متغیرها و ماژولهای داخلی تعامل داشته باشند. REPL از امکاناتی مانند تکمیل خودکار، تاریخچهٔ ورودی، و تعریف دستورات سفارشی پشتیبانی میکند.
گزارشهای تشخیصی در Node.js یک خلاصهٔ JSON از وضعیت پردازش فراهم میکنند که شامل اطلاعاتی دربارهٔ پشتهٔ جاوااسکریپت و بومی، حافظهٔ Heap، مصرف منابع، نسخههای کامپوننتها، و محدودیتهای سیستم است. این گزارشها برای توسعه، تست، و محیطهای تولید طراحی شدهاند تا به شناسایی و رفع مشکلات کمک کنند. گزارشها میتوانند بهصورت خودکار در شرایط خاص (مانند خطاهای کشفنشده یا خطاهای بحرانی) یا بهصورت دستی از طریق API تولید شوند.
ویژگی Single Executable Applications (SEA) در Node.js امکان توزیع یک برنامهٔ Node.js بهصورت یک فایل اجرایی مستقل را فراهم میکند، بدون نیاز به نصب Node.js روی سیستم مقصد. این قابلیت با تزریق یک blob آمادهشده (شامل اسکریپت و منابع) به باینری Node.js کار میکند. در زمان اجرا، اگر blob تزریقشده وجود داشته باشد، اسکریپت داخل آن اجرا میشود؛ در غیر این صورت Node.js بهصورت عادی عمل میکند.
ماژول node:sqlite یک رابط بومی برای کار با پایگاهدادههای SQLite در Node.js فراهم میکند. این ماژول از APIهای همگام (synchronous) برای اتصال به پایگاهداده، اجرای کوئریها، مدیریت prepared statements، نشستها (sessions)، تغییرات (changesets)، و قابلیتهای پیشرفته مانند توابع سفارشی، توابع تجمعی (aggregate)، و پرچمهای امنیتی پشتیبانی میکند. هدف این ماژول، سادهسازی و ایمنسازی ادغام SQLite در برنامههای Node.js است.
ماژول node:stream یکی از بنیادیترین بخشهای Node.js است و یک رابط انتزاعی برای کار با دادههای جریانمحور فراهم میکند. Streams برای مدیریت ورودی/خروجیهای حجیم، درخواستهای شبکه، خواندن/نوشتن فایلها و انجام تبدیلهای دادهای ضروری هستند. Streams نمونههایی از EventEmitter بوده و در چهار نوع اصلی ارائه میشوند: Readable، Writable، Duplex و Transform.