
دنیای زبانهای کدنویسی و توسعه نرمافزار
شیء 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.
ماژول node:string_decoder در Node.js ابزاری برای تبدیل امن و دقیق دادههای باینری (Buffer) به رشتههاست، بهویژه زمانی که داده شامل کاراکترهای چندبایتی UTF‑8 یا UTF‑16 باشد. برخلاف buffer.toString() که ممکن است کاراکترهای ناقص را خراب کند، StringDecoder با نگهداشتن بایتهای ناقص در یک بافر داخلی، از تولید خروجیهای اشتباه جلوگیری میکند.
ماژول node:test یک فریمورک تست داخلی و مدرن در Node.js است که بدون نیاز به هیچ وابستگی خارجی، امکاناتی مانند تستهای همگام و ناهمگام، تستهای Promise و Callback، زیرتستها، هوکها، Mocking، Snapshot، پوشش کد، حالت Watch و گزارشگرهای سفارشی را ارائه میدهد. این ماژول پایدار، قدرتمند و مناسب پروژههای مدرن Node.js است.
ماژول node:tls پیادهسازی پروتکلهای TLS و SSL را در Node.js فراهم میکند. این ماژول بر پایهٔ OpenSSL ساخته شده و امکان ایجاد ارتباطات رمزنگاریشده، مدیریت گواهیها، احراز هویت، امنیت پیشرفته، و ویژگیهایی مانند ALPN، SNI، PSK، Session Resumption و کنترل Cipher Suite را ارائه میدهد. این ماژول برای ساخت سرورهای HTTPS، سرویسهای امن TCP، و هر نوع ارتباط رمزنگاریشده ضروری است.
ماژولهای node:trace_events و node:tty دو بخش مهم و تخصصی در Node.js هستند. Trace Events ابزاری قدرتمند برای جمعآوری دادههای عملکردی، رویدادهای V8، async_hooks، فایلسیستم، شبکه و سایر بخشهای داخلی Node.js است. این دادهها برای پروفایلینگ، دیباگینگ عمیق و تحلیل رفتار برنامه استفاده میشوند. TTY نیز امکان تعامل با ترمینال را فراهم میکند و برای ساخت ابزارهای CLI، مدیریت رنگها، اندازهٔ ترمینال، حالت raw و کنترل مکاننما کاربرد دارد. این مقاله هر دو ماژول را بهصورت کامل و ساختاریافته توضیح میدهد.