برنامه نویسی با nodejs/جلسه سوم/Node.js Modules

اصلا Module چیه؟

ماژول ها رو مثل کتابخانه های جاوااسکریپتی بدونید, در واقع مجموعه ای از توابع هستند که قرار هست داخل برنامه ازشون استفاده کنیم.ماژول ها به ما این امکان رو میدن تا برنامه های بزرگ رو به قطعات کوچک و برنامه های کوچتر تقسیم کنیم و روند توسعه برنامه رو برامون آسون تر میکنه.

در داخل هر ماژول, شیی به نام module وجود داره که به ماژول فعلی اشاره میکنه و اطلاعاتی از قبیل نام و id ماژول فعلی رو در داخل خودش نگه میداره.

ماژول های درونی( Built-in Modules )

نود جی اس یه سری ماژول های درونی داره که وقتی شما نود رو نصب میکنید به طور خودکار نصب میشن و تنها کاری که شما باید انجام بدید این هست که از این ماژول ها استفاده کنید(لقمه آماده D:) که کم کم با این ماژول ها آشنا خواهیم شد و ازشون استفاده خواهیم کرد

نحوه استفاده از ماژول

برای استفاده از ماژول, از تابع ( ) require و نام ماژول مورد نظر استفاده می کنیم:

 var http = require('http'); 

الان برنامه شما به ماژول 'http' دسترسی داره و می تونید با استفاده از اون سرور خودتون رو راه اندازی کنید

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/html'});
    res.end('Hello World!');
}).listen(8080); 
در قسمت قبل از این کد استفاده کردیم و اولین برنامه خودمون رو نوشتیم
ماژول 'http' نمونه ای از یک Built-in module هست




ساخت ماژول شخصی!

شاید به ماژولی نیاز داشته باشید که به صورت آماده وجود نداشته باشه! خب تکلیف چیه؟
اینجاس که شما میتونید ماژول موردنظر خودتون رو بسازید
برای ساخت ماژول شخصی ابتدا فایلی با عنوان currentTime.js در پوشه روت پروژه خودتون بسازید و کد زیر رو داخلش قرار بدید:

let currentTime = function () {
 return Date()
}

module.exports = { currentTime }; 

در اینجا متغیری با نام currentTime ساختیم و مقدار اون رو برابر با تابعی قرار دادیم که زمان فعلی رو بر میگردونه.

از module.exports به این منظور استفاده میشه تا از توابع و مقادیر داخل ماژول در جاهای دیگه و فایل های دیگه استفاده کنیم

برای آشنایی بیشتر با module.exports نوشته ای آماده کردم که میتونید از این لینک بهش دسترسی داشته باشید
یادتون نره حتما بعد نوشتن کدها اونو save کنید



فراخوانی و استفاده از ماژول شخصی

اگر یادتون باشه چند خط بالاتر گفتم که برای استفاده از ماژول باید اون رو با استفاده از تابع require فراخوانی کنیم, حالا به فایل myFirst.js میریم تا از ماژول خودمون استفاده کنیم

برای فراخوانی ماژول های خودمون مسیری که فایل ماژول اونجا قرار داره رو به تابع require میدیم:

var http = require('http');
var time = require('./myDate') //در اینجا ماژول خودمون رو فراخوانی کردیم 

http.createServer(function (req, res) {
 res.writeHead(200, {'Content-Type': 'text/html'});
 res.end(time.currentTime()); // در این قسمت از ماژول خودمون استفاده کردیم
}).listen(8080); 

ماژول خودمون رو فراخوانی و درون متغیر time قرار دادیم , حالا متغیر time به توابع یا متغیرهایی که داخل ماژول export کردیم دسترسی داره و با نوشتن time و زدن یک نقطه میتونیم ازشون استفاده کنیم که این کار رو در خط 6 انجام دادیم.

حالا فایل رو ذخیره میکنیم و با دستور node myFirst.js برنامه رو اجرا میکنیم, به مرورگر میریم و آدرس localhost:8080 رو در قسمت آدرس وارد میکنیم, اگر همه چیز رو درست انجام داده باشیم با تصویر زیر روبرو میشیم




منبع: www.w3schools.com با کمی تغییر D: