الصادرات الافتراضية
جزء من قسم أساسيات Node.js في رحلة Node.js على Coddy. الدرس 8 من 33.
يضيف هذا الدرس الملف store.js، وهو ملف يتناول شيئًا واحدًا: المتجر الذي يحتفظ بملاحظاتك. يصدّر ملف كهذا ذلك الشيء بوصفه تصديرًا افتراضيًا، ويختار الملف الذي يستورده أي اسم له.
تحدّد export default القيمة الوحيدة التي يتناولها الملف. ويمنحها الملف المستورِد أي اسم، ولا يكتب أقواسًا معقوفة:
// config.js
const config = { port: 3000 };
export default config;
// app.js
import settings from './config.js';
console.log(settings.port);تُستخدم الأقواس المعقوفة لطلب تصدير مُسمّى، لذا يفشل import { config } from './config.js' هنا: لا يصدّر config.js أي اسم. استخدم تصديرًا افتراضيًا للقيمة الرئيسية في الملف، وتصديرات مُسمّاة لملف يضم دوال مساعدة.
التحدي
سهلتحتاج ملاحظاتك إلى مكان واحد تحفظها فيه. يحتفظ الملف الجديد store.js بها في كائن store، الذي يبدأ بثلاث ملاحظات في store.notes. شارك هذا المخزن مع notes.js، واستخدمه في add وlist.
- في
store.js، اجعلstoreالتصدير الافتراضي للملف. يحدد التعليق في الأسفل الموضع. - في
notes.js، استورد المخزن في الأعلى، بجانب استيرادformatNote. لا يحتوي الاستيراد الافتراضي على أقواس معقوفة. - في فرع
add، أضف الملاحظة باستخدامstore.add(text). تعيد هذه الدالة رقم الملاحظة الجديدة. اطبعAdding:متبوعًا بالملاحظة، منسقةً باستخدام ذلك الرقم. يبدأ المخزن بثلاث ملاحظات، لذا يطبعnode notes.js add Buy breadما يلي:Adding: 4. Buy bread - في فرع
list، أبقِ العنوانNotes for .... وتحته، استبدلNo notes yetبكل ملاحظة في المخزن، بحيث تظهر كل واحدة في سطر، وتُنسق باستخدامformatNoteوتُرقم بدءًا من 1. يطبعnode notes.js listما يلي:إذا لم يحتوِ المخزن على أي ملاحظات، فاطبعNotes for you 1. Buy milk 2. Call Ada 3. Water the plantsNo notes yetأسفل العنوان مع ذلك.
جرّب ذلك: اكتب add Buy bread في المربع بعد $ node notes.js واضغط على Enter. سترى Adding: 4. Buy bread. ثم اكتب list: سترى الملاحظات الثلاث التي بدأ بها المخزن، لكنك لن ترى Buy bread. يُحفظ المخزن في الذاكرة، لذا تبدأ كل مرة تشغيل من جديد بالملاحظات الثلاث الموجودة في store.js. يحفظ الفصل 3 الملاحظات في ملف.
جرّب بنفسك
// تبقى الملاحظات هنا حتى يحفظها الفصل 3 في ملف.
const store = {
notes: ['Buy milk', 'Call Ada', 'Water the plants'],
add(text) {
this.notes.push(text);
return this.notes.length;
},
};
// اجعل store التصدير الافتراضي لهذا الملف.
جميع دروس أساسيات Node.js
1تشغيل JavaScript على Node
مرحبًا يا Nodeقراءة الأمروسائط سطر الأوامرالأوامرتدرّب بنفسك: Playground لـ Express