Menu
CoddyTech

CommonJS Modülleri

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

npm paketlerinde ve eski eğitimlerde 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. .cjs ile biten bir dosya, projenin geri kalanında ne kullanılırsa kullanılsın her zaman CommonJS'tir ve böyle bir dosyanın import edilmesi, varsayılan olarak module.exports nesnesini 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ı nesneyi gösterir. exports.hello = hello bu nesneye ekleme yapar; exports = { hello } değişkeni değiştirir ve içe aktaran kod boş bir nesne alır.

challenge icon

Görev

Kolay

Daha eski bir dosya olan legacy/stats.cjs, module.exports kullanan CommonJS biçiminde yazılmıştır. Bir stats komutu eklemek için bu dosyayı notes.js içinden kullan.

  1. legacy/stats.cjs içinde countWords(notes) işlevini tamamla. Bu işlev notlar dizisini alır ve tüm notlardaki kelimelerin toplam sayısını döndürür. Kelimeler boşluklarla ayrılır. Başlangıçtaki üç not için (Buy milk, Call Ada ve Water the plants) 7 döndürür. Boş bir dizi için 0 döndürür.
  2. notes.js içinde dosyayı import stats from './legacy/stats.cjs' ile içe aktar. Bu bir CommonJS dosyasıdır, bu nedenle stats onun module.exports nesnesidir ve işlev stats.countWords şeklindedir.
  3. Son else bloğundan önce, komut zincirine bir stats komutu ekle. Bu komut tek satır yazdırır: önce not sayısını, ardından kelime sayısını.
    3 notes, 7 words
    where ve diğer komutlar çalışmaya devam eder.

Deneyin: $ node notes.js ifadesinden sonra kutuya stats yaz ve Enter tuşuna bas. 3 notes, 7 words çıktısını görürsün. Ardından add Buy bread, sonra da yeniden stats yaz: program sona erdiğinde depo yeni notları unuttuğu için yine 3 notes, 7 words çıktısını görürsün.

Kendin dene

// CommonJS yöntemiyle yazılmış eski bir modül.
function countWords(notes) {
    // Tüm notların toplamda kaç kelime içerdiğini döndür.
    return 0;
}

module.exports = { countWords };

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

Kendi başına pratik yap: Express playground