فلسفه ی Node.js وجود یک سری ماژول های هسته و مرکزی می باشد که اجازه می دهد تا با استفاده از آن ها توابع پیشرفته فراهم شود . در این بخش می خواهیم برخی از این ماژول های مرکزی را بررسی نماییم .
بخش 12 – آموزش Node.JS ، ماژول های هسته
فلسفه ی Node.js وجود یک سری ماژول های هسته و مرکزی می باشد که اجازه می دهد تا با استفاده از آن ها توابع پیشرفته فراهم شود . در این بخش می خواهیم برخی از این ماژول های مرکزی را بررسی نماییم .
استفاده از ماژول های هسته
استفاده از ماژول های هسته ، خیلی شبیه به استفاده از ماژول های مبتنی برفایل می باشد که برای خودتان نوشته اید . شما همچنان از require استفاده خواهید کرد . تنها تفاوت در آنجاست که شما بجای استفاده از مسیر نسبی برای دسترسی به فایل ، از نام ماژول در تابع require استفاده خواهید نمود . بعنوان مثال ، ماژول path را در نظر بگیرید برای استفاده از آن باید بصورت var path = require( ‘ path ‘ ) از آن استفاده کنید . مانند ماژول های مبتنی برفایل باز هم شما از آلودگی های namespace های سراسری استفاده نخواهید کرد و چیزی که از آن استفاده می کنید در واقع یک متغیر محلی می باشد که شما آن را نامگذاری نموده اید تا به محتوای آن ماژول دست یابید .
ماژول Path
برای بارگزاری این ماژول کافیست از require( ‘ path ‘ ) استفاده نمایید . هنگامی که با سیستم فایل کار می کنید با استفاده از path می توانید تبدیلات رشته ای مفیدی را فراهم نمایید . انگیزه ی کلیدی برای استفاده از ماژول path حذف تناقضات مسیر سیستم فایل می باشد . بعنوان مثال path.join در سیستم های مبتنی بر UNIX از اسلش ‘/’ استفاده می نماید مانند سیستم های MAC . و در سیستم های ویندوزی از بک اسلش ‘\’ استفاده خواهد کرد . در ادامه برخی از توابع مفید بصورت خلاصه بررسی خواهیم کرد .
Path.normalize(str)
این تابع مشکلات اسلش و بک اسلش را حذف کرده و همچنین اسلش های دوتایی را نیز حذف می کند . اینکار براساس سیستم عاملی که در آن اجرا خواهد شد صورت خواهد گرفت . مثالی از آن را در زیر مشاهده می کنید:
Path.join([str1],[str2], … )
این تابع هر تعداد مسیر را به یکدیگر متصل کرده و اینکار را براساس نوع سیستم عامل انجام می دهد . یک مثال را در زیر می بینید :
و نتیجه ی اجرای کدهای بالا بصورت زیر خواهد بود :
Dirname , basename , extname
موارد ذکر شده ، سه تابع بسیار مفید در ماژول path می باشند . path.dirname ، بخش دایرکتوری یک مسیر را بسته به سیستم عامل به شما خواهد داد. Path.basename به شما نام فایل را خواهد داد . path.extname به شما پسوند فایل را خواهد داد . یک نمونه از توابع را در زیر می بینید :
اجرای کدهای بالا خروجی زیر را به دنبال خواهد داشت :
ماژول path توابع مفید دیگری نیز دارد که می توانید آن ها را از لینک زیر مطالعه بفرمایید :
http://nodejs.org/api/path.html
ماژول fs
ماژول fs دسترسی به سیستم فایل را فراهم می آورد . برای بارگزاری این ماژول از require( ‘ fs ‘ ) استفاده نمایید . این ماژول توابعی برای تغییر نام ، حذف ، خواندن و نوشتن فایل دارد . یک مثال ساده برای نوشتن در فایل را در ادامه می بینید :
اجرای کدهای بالا بصورت زیر خواهد بود :
یکی از چیزهای خیلی عالی در مورد ماژول fs این است که بصورت غیرهمزمان بخوبی همزمان ( با استفاده از پسوند sync ) برای ارتباط با سیستم فایل کار خواهد کرد . بعنوان مثال شما برای حذف یک فایل می توانید از unlink و یا unlinkSync استفاده نمایید .
نسخه ی همزمان را در مثال زیر می بینید :
و همچنین نسخه ی غیرهمزمان کد بالا را در زیر مشاهده می نمایید :
تفاوت اصلی بین دو نسخه این است که در نسخه ی غیرهمزمان یک تابع callback را گرفته و اگر خطایی رخ دهد آن را برمی گرداند .
ماژول os
ماژول os برخی از توابع سودمند ( حیاتی ) و تنظیمات مربوط به سیستم عامل را شامل می شود . شما می توانید با استفاده از require( ‘ os ‘ ) آن را فراخوانی نمایید . بعنوان مثال اگر می خواهید به میزان حافظه ی استفاده شده ی جاری دسترسی داشته باشید می توانید از تابع os.totalmem() استفاده کنید . و یا با استفاده از os.freemem() میزان حافظه ی آزاد جاری را بدست آورید . در زیر کدهایی برای نمونه مشاهده می نمایید :
و نتیجه ی اجرای کدهای بالا را در زیر می بینید :
یک مورد حیاتی دیگر در مورد ماژول os بدست آوردن اطلاعاتی در مورد cpu می باشد که نمونه کدها را در زیر می بینید :
اجرای آن بصورت زیر خواهد بود :
ماژول util
ماژول util دارای توابعی مفید در زمینه ی اهداف کلی می باشد . شما با استفاده از require( ‘ util ‘ ) می توانید به آن دسترسی داشته باشید . شما برای نمایش چیزی با استفاده از مهر زمانی در کنارش می توانید از تابع util.log بصورت زیر استفاده نمایید :
اجرای این کد بصورت زیر خواهد بود :
یکی دیگر از ویژگی های بسیار مفید util استفاده از فرمت رشته ها با آن می باشد . این تابع شبیه به تابع printf در C/C++ می باشد . اولین ورودی دارای مکان های رزروی برای مقادیر ورودی بعدی مباشد . به مثال زیر توجه نمایید تا بهتر متوجه شوید :
و خروجی کدهای بالا بصورت زیر خواهد بود
افزون برموارد بالا ماژول util توابعی برای چک کردن نوع دارا می باشد . توابعی مانند ( isArray , isDate , isError ) . مثالی از این موارد را می بینید :
شاد و سلامت باشید
محمد جعفری فوتمی