Menu
CoddyTech

CommonJS Modülleri

Coddy'nin Node.js Journey'sinin Node.js Temelleri bölümünün bir parçası. Ders 9 / 24.

Npm paketlerinde ve eski öğreticilerde okuyacağın Node kodlarının büyük bir kısmı başka bir modül sistemi kullanır.

CommonJS, module.exports ile dışa aktarır ve require ile içe aktarır. Node, adı .cjs ile biten dosyalarda bunu hâlâ çalıştırır ve böyle bir dosyanın import edilmesi, module.exports nesnesini varsayılan olarak verir:

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

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

exports, başlangıçta module.exports ile aynı nesnedir. exports.hello = hello bu nesneye ekleme yapar; exports = { hello } ise değişkeni değiştirir ve içe aktaran taraf boş bir nesne alır.

challenge icon

Görev

Kolay
  • legacy/stats.cjs içindeki countWords(notes) işlevini tamamla: notların toplam kaç sözcük içerdiğini bul.
  • import stats from './legacy/stats.cjs' ile notes.js dosyasına aktar.
  • stats komutu 3 notes, 7 words çıktısını verir.

node notes.js stats komutunu çalıştır. Ardından add ile bir not ekle ve stats komutunu tekrar çalıştır: sonuç hâlâ 3, çünkü henüz hiçbir şey kaydedilmiyor.

Kendin dene

// CommonJS yöntemiyle yazılmış eski bir modül.
function countWords(notes) {
    // Tüm notlardaki toplam kelime sayısını döndür.
    return 0;
}

module.exports = { countWords };

Node.js Temelleri bölümündeki tüm dersler