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.
Görev
KolayDaha 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.
legacy/stats.cjsiçindecountWords(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 AdaveWater the plants)7döndürür. Boş bir dizi için0döndürür.notes.jsiçinde dosyayıimport stats from './legacy/stats.cjs'ile içe aktar. Bu bir CommonJS dosyasıdır, bu nedenlestatsonunmodule.exportsnesnesidir ve işlevstats.countWordsşeklindedir.- Son
elsebloğundan önce, komut zincirine birstatskomutu ekle. Bu komut tek satır yazdırır: önce not sayısını, ardından kelime sayısını.3 notes, 7 wordswhereve 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
1JavaScript’i Node Üzerinde Çalıştırma
Merhaba, NodeKomutu OkumaKomut Satırı ArgümanlarıKomutlarKendi başına pratik yap: Express playground