آموزش استفاده از module.exports در node.js

کجا از exports استفاده میکنیم؟

قبلا اینجا با هم در مورد module صحبت کردیم و گریزی هم به استفاده از module.exports زدیم و قول دادم که نوشته ای مختص module.exports براتون آماده کنم که به قولم عمل کردم, خب بریم سر اصل مطلب:

از export هنگامی استفاده می شود که ماژولی میسازیم و میخایم توابع و آبجکت های ماژول رو به بیرون از ماژول ارسال و در جایی دیگر از آنها استفاده کنیم.

اگر نمیدونید ماژول چیه به این لینک مراجعه کنید



ماژولها چگونه کد خود را با بقیه ماژولها به اشتراک میزارن؟

هر ماژول درون خودش آبجکتی با نام module داره, این آبجکت اطلاعاتی مثل نام و id ماژول فعلی رو داخل خودش نگه میداره, همچنین این آبجکت یک property به نام exports داره که وظیفه ایشون اینه که مشخص کنه ماژول چه چیزهایی قراره با ماژولهای دیگه به اشتراک بزاره تا اونا با استفاده از import یا require بتونن ازش استفاده کنن. ما میتونیم هر نوع value, function یا object رو با استفاده از module.exports در اختیار ماژول های دیگه بزاریم و اونا استفاده کنند.

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



چگونه از module.exports استفاده کنیم؟

همونطور که گفتم میتونیم هر نوع value, function, یا object رو export کنیم, حتما میپرسید چجوری؟

فرض کنید ما یک متغیر با نام temp داریم و قصد داریم که اون رو export کنیم, برای این کار فقط لازمه تا این متغیر رو به لیست propertyهای module.exports اضافه کنیم که کدش رو پایین براتون گذاشتم:

let temp = 12
module.exports.temp = temp


چگونه متغیر یا توابعی که exports کردیم را require کرده و استفاده کنیم؟

خب تا اینجا ما یاد گرفتیم exports چی هست و چجوری باید ازش استفاده کنیم.اگر موافق باشید این جلسه رو با یه تمرین عملی به پایان برسونیم D:

فایلی به نام book_recommendations.js بسازید و کد زیر رو داخلش قرار بدید:

// book_recommendations.js

// نویسنده های مورد علاقمون رو داخل یه متغیر قرار دادیم
const favoriteAuthor = { name: "Ken Bruen", genre: "Noir", nationality: "Irish" };

// این تابع کتاب مورد علاقمون رو برمیگردونه
function favoriteBook() { 
 return { title: "The Guards", author: "Ken Bruen" };
}

// این تابع لیستی از کتابهای خوب رو برمیگردونه
function getBookRecommendations() { 
 return [
 {id: 1, title: "The Guards", author: "Ken Bruen"},
 {id: 2, title: "The Stand", author: "Steven King"},
 {id: 3, title: "The Postman Always Rings Twice", author: "James M. Cain"}
    ];
}

//   اینجا ما متغیر و توابع رو
// کردیم export 
module.exports.favoriteAuthor = favoriteAuthor; 
module.exports.favoriteBook = favoriteBook; 
module.exports.getBookRecommendations = getBookRecommendations; 

کدها کاملا گویا هستند و کامنت هم گذاشتم تا راحت تر متوجه بشید

حالا میریم تا در جای دیگه از این ماژول استفاده کنیم, فایلی جدید با نام myApp.js بسازید و کد زیر رو داخلش قرار بدید:

var book = require('./book_recomendation')

let favoriteAuthor = book.favoriteAuthor
let favoriteBook = book.favoriteBook()
let bookRecomendation = book.getBookRecommendations()

console.log('\n\n \n\n')
console.log(favoriteBook)
console.log('\n\n__________________\n\n')
console.log(favoriteAuthor)
console.log('\n\n__________________n\n')
console.log(bookRecomendation)
console.log('\n\n__________________n\n')

در خط اول ما فایل ماژول رو require کردیم و داخل متغیر book ریختیم, حالا با استفاده از متغیر book میتونیم به توابع و متغیرهایی که export کرده بودیم دسترسی داشته باشیم

در خط های 3-4 و 5 متغیر و توابعمون رو داخل متغیرهایی قرار دادم و در ادامه داخل کنسول چاپ کردم, نتیجه برنامه رو در تصویر زیر مشاهده میکنید:




خب این آموزش هم تموم شد امیدوارم که لذت برده باشید
هر گونه سوال براتون پیش اومد بپرسید جواب خواهم داد