Module CommonJS
Termasuk bagian Dasar-Dasar Node.js dalam perjalanan Node.js di Coddy. Pelajaran 10 dari 33.
Sebagian besar kode Node yang akan kamu baca di paket npm dan tutorial lama menggunakan sistem modul yang berbeda.
CommonJS mengekspor dengan module.exports dan mengimpor dengan require. File yang diakhiri dengan .cjs selalu menggunakan CommonJS, apa pun yang digunakan bagian lain dari proyek, dan import atas file seperti itu memberikan objek module.exports sebagai nilai default:
// greet.cjs
function hello(name) {
return 'Hello, ' + name;
}
module.exports = { hello };
// app.js
import greet from './greet.cjs';
console.log(greet.hello('Ada'));exports awalnya adalah objek yang sama dengan module.exports. exports.hello = hello menambahkan properti ke objek tersebut; exports = { hello } mengganti variabelnya, sehingga modul yang mengimpor mendapatkan objek kosong.
Tantangan
MudahSebuah file lama, legacy/stats.cjs, ditulis dengan cara CommonJS, menggunakan module.exports. Gunakan file itu dari notes.js-mu untuk menambahkan perintah stats.
- Di
legacy/stats.cjs, selesaikancountWords(notes). Fungsi ini menerima array berisi catatan dan mengembalikan jumlah total kata di dalamnya, dihitung dari semua catatan. Kata dipisahkan oleh spasi. Untuk tiga catatan awal,Buy milk,Call AdadanWater the plants, fungsi ini mengembalikan7. Untuk array kosong, fungsi ini mengembalikan0. - Di
notes.js, impor file tersebut denganimport stats from './legacy/stats.cjs'. File itu adalah file CommonJS, jadistatsadalah objekmodule.exports-nya, dan fungsinya adalahstats.countWords. - Tambahkan perintah
statske rangkaian kondisi, sebelumelseterakhir. Perintah ini mencetak satu baris: jumlah catatan, lalu jumlah kata.3 notes, 7 wordswheredan perintah lainnya tetap berfungsi.
Coba: ketik stats di kotak setelah $ node notes.js dan tekan Enter. Kamu akan melihat 3 notes, 7 words. Lalu ketik add Buy bread, kemudian stats lagi: kamu tetap akan melihat 3 notes, 7 words, karena store melupakan catatan baru saat program berakhir.
Coba sendiri
// module lama yang ditulis dengan cara CommonJS.
function countWords(notes) {
// Kembalikan jumlah kata dalam semua catatan.
return 0;
}
module.exports = { countWords };
Semua pelajaran di Dasar-Dasar Node.js
1Menjalankan JavaScript di Node
Halo, NodeMembaca PerintahArgumen Baris PerintahPerintah5Peristiwa, Input, dan Package
Dengarkan Sebelum MengirimkanPemancar PeristiwaMembaca InputLatihan sendiri: Playground Express