
module.exports ישירות.module.exports.name = ... או exports.name = ... יוצרים מאפיין לכל פריט בתוך אובייקט החשיפה.module.exports, למשל module.exports = 'Hello' או module.exports = function () {...}. הפריט שנחשף הוא הערך עצמו, בלי שם של מאפיין.module.exports חושפים רק פריט אחד. כדי לחשוף כמה פריטים צריך להשתמש באובייקט או במאפיינים.exports = function... בלי module. לפניו, הפונקציה נשארת במשתנה המקומי של המודול ולא נחשפת החוצה. לכן לחשיפה של פריט בודד משתמשים תמיד ב-module.exports.module.exports, ובחשיפה של כמה פריטים משתמשים באובייקט.הטקסט המלא של הדקות הראשונות בהרצאה «הסבר על EXPORT מתוך מודול» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
לפעמים קורה מצב שבו אנחנו רוצים לבנות איזשהו מודול, כלומר קובץ JavaScript נפרד, אבל אנחנו רוצים לחשוף ממנו רק דבר אחד ויחיד, או רק אובייקט אחד, או רק משתנה אחד, אבל לרוב זה יהיה רק פונקציה אחת.
אז הרבה פעמים אנחנו כותבים איזה פונקציה אחת ויחידה במודול, ואנחנו רוצים לחשוף רק אותה. במקרה כזה יש טכניקה טיפה שונה, טיפה אחרת, לצורך החשיפה הזאת, ולפעמים זה גם כן משהו שאנחנו רואים או מבצעים הרבה בעצמנו.
אז בואו נראה איך עושים את זה. אז בואו נצרף כאן את MySecondModule בהמשך לדוגמה הקודמת שעשינו, נקודה.js, את זה אפשר רגע לכבות, ושוב פעם אני מזכיר, יש לנו אוטומטית את הפונקציה הזאת בכל קובץ שאנחנו בונים.
זאת הפתיחה שלה, זאת הסגירה שלה, את ה-Immediately Invoked Function Expression הזאת, וכל אלה זמינים עבורנו. אז איך מקודם אנחנו חשפנו דברים?
אנחנו בנינו איזושהי פונקציה, הכנסנו אותה ישירות לתוך משתנה בתוך מודול נקודה אקספורטס או אקספורטס ואז יש לנו את המשתנה. כאן מה שאנחנו יכולים לעשות זה פשוט מודול נקודה אקספורטס שווה.
שימו לב להבדלים ביניהם, נשים אותם רגע סייד ביי סייד. אם היינו רוצים לחשוף מספר אלמנטים אז תחשבו שאקספורטס זה אובייקטת ג'אווה סקריפט. אז אם אני רוצה לחשוף מספר דברים אני פשוט יוצר בתוכו משתנים כאלה ולכן יש בתוך האובייקט הזה מספר משתנים.
אם אני רוצה לחשוף דבר אחד ויחיד אז אני פשוט מכניס ישירות לתוכו על ידי השמה בלי עוד איזשהו משתנה את מה שאני רוצה לחשוף.
בואו ניקח דוגמה נניח שאני רוצה לחשוף איזשהו איזושהי מחרוזת. עכשיו חשפנו החוצה בכל האקספורטס רק מכרוזת אחת.
איך אנחנו משתמשים עם זה? בואו רגע נשים אותו פה בצד. נשים בהערה כל הקוד הקודם, כולל המודול הזה, ונשתמש ב-MySecondModule שנמצא פה, אבל בגלל שביצענו חשיפה של אלמנט אחד ויחיד, האלמנט הזה עכשיו הוא זה.
זאת אומרת מי סקנד מודול זה פשוט המחרוזת הלואו. בואו נבדוק קונסול נקודה לוג מי סקנד מודול ניגש לטרמינל יש לנו כאן את נוד אפ והנה אנחנו רואים שכל זה עכשיו הוא הלואו.
בואו נראה דוגמה נוספת. נניח שהיינו באים ועושים דבר כזה אני מחצין החוצה כמובן בגלל שיש לי פה הצענה של אובייקט אחד ויחיד אז אני לא יכול את שניהם, אני צריך לבחור אחד.
את אותו אובייקט חתול שהיה לנו מקודם. בואו ניקח name, מיצי ובואו ניקח h4 ועכשיו my second module זה כל האובייקט הזה. אז אם אנחנו עכשיו נריץ את האפליקציה אנחנו נראה את כל האובייקט פה על הקונסול.
ואם אנחנו נלך לכאן אנחנו נראה שיש לנו את ה-name ויש לנו את ה-h חשפנו החוצה הוא בייקט שלם אבל רוב המקרים שמבצעים דבר כזה זה או שחושפים פונקציה או שחושפים קלאס שאנחנו נראה בהמשך איך עושים את זה.
אז בואו נחשוף כרגע פונקציה יש לנו כמה אפשרויות לעשות את זה אפשרות אחת function do do work כלשהי, console.log doing some work ואנחנו יכולים לבוא לפה ולבצע module.exports שווה do work ואז כל אלה אנחנו יכולים הרגע לשים בהערה אם אנחנו באים לכאן ואומרים my second module ובעצם כל הפונקציה אנחנו לא רושמים פה נקודה do work
אין לנו את השם הפונקציה do work בתוכו