وحدات 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 } فتستبدل المتغير، ويحصل المستورِد على كائن فارغ.
التحدي
سهل- أكمل
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 };