Menu
CoddyTech

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.

challenge icon

Tantangan

Mudah

Sebuah file lama, legacy/stats.cjs, ditulis dengan cara CommonJS, menggunakan module.exports. Gunakan file itu dari notes.js-mu untuk menambahkan perintah stats.

  1. Di legacy/stats.cjs, selesaikan countWords(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 Ada dan Water the plants, fungsi ini mengembalikan 7. Untuk array kosong, fungsi ini mengembalikan 0.
  2. Di notes.js, impor file tersebut dengan import stats from './legacy/stats.cjs'. File itu adalah file CommonJS, jadi stats adalah objek module.exports-nya, dan fungsinya adalah stats.countWords.
  3. Tambahkan perintah stats ke rangkaian kondisi, sebelum else terakhir. Perintah ini mencetak satu baris: jumlah catatan, lalu jumlah kata.
    3 notes, 7 words
    where dan 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

Latihan sendiri: Playground Express