Menu
CoddyTech

وحدات CommonJS

جزء من قسم أساسيات Node.js في رحلة Node.js على Coddy. الدرس 9 من 24.

يستخدم جزء كبير من شيفرة Node التي ستقرأها في حزم npm والبرامج التعليمية القديمة نظامًا آخر للوحدات.

يستخدم CommonJS التصدير باستخدام module.exports والاستيراد باستخدام require. لا يزال Node يشغّل هذا النظام في الملفات التي تنتهي بـ .cjs، ويمنحك import لهذا النوع من الملفات كائن module.exports الخاص به بوصفه القيمة الافتراضية:

// greet.cjs
function hello(name) {
    return 'Hello, ' + name;
}
module.exports = { hello };

// app.js
import greet from './greet.cjs';
console.log(greet.hello('Ada'));

تكون exports في البداية الكائن نفسه الذي تمثله module.exports. تضيف إليه exports.hello = hello؛ أما exports = { hello } فتستبدل المتغير، ويحصل المستورِد على كائن فارغ.

challenge icon

التحدي

سهل
  • أكمل countWords(notes) في legacy/stats.cjs: عدد الكلمات الموجودة في الملاحظات مجتمعةً.
  • استورده إلى notes.js باستخدام import stats from './legacy/stats.cjs'.
  • يطبع الأمر stats العبارة 3 notes, 7 words.

شغّل node notes.js stats. ثم أضف ملاحظة باستخدام add وشغّل stats مرة أخرى: سيظل العدد 3، إذ لم يُحفَظ أي شيء بعد.

جرّب بنفسك

// وحدة قديمة مكتوبة بأسلوب CommonJS.
function countWords(notes) {
    // أعِد العدد الإجمالي للكلمات في جميع الملاحظات.
    return 0;
}

module.exports = { countWords };

جميع دروس أساسيات Node.js