0

Export & Import

 


Modul bekerja dengan cara exporting dan importing nilai. Baik itu nilai variabel, fungsi, array, object, atau class agar bisa digunakan pada berkas JavaScript lain. Satu berkas JavaScript terdiri dari satu module yang dapat kita export menjadi lebih dari satu nilai.

Dalam environment Node.js, gunakan perintah module.exports untuk melakukan proses export module. Setiap berkas JavaScript yang berjalan pada Node, memiliki objek module lokal yang memiliki properti exports. Properti tersebut digunakan untuk mendefinisikan nilai apa yang akan diekspor dari berkas tersebut.

Buatlah berkas baru bernama state.js pada project Anda. Kode di bawah ini merupakan contoh bagaimana melakukan export nilai menggunakan module.exports.

  1. const coffeeStock = {
  2.   arabica: 100,
  3.   robusta: 150,
  4.   liberica: 200
  5. }
  6.  
  7. module.exports = coffeeStock;

Kode module.exports = coffeeStock membuat object coffeeStock ditetapkan sebagai nilai dari module.exports. Nilai properti exports ini nantinya bisa di-import dan digunakan pada berkas JavaScript lain.

Jika Anda mencoba melihat nilai module yang ada pada berkas state.js dengan menambahkan kode console.log(module) di akhir berkas, maka kita akan melihat object coffeeStock menjadi nilai dari properti exports.

  1. Module {
  2.   id: '.',
  3.   path: '/home/dicoding/Playground/javascript/CoffeeMachine',
  4.   exports: { arabica: 100, robusta: 150, liberica: 200 },
  5.   parent: null,
  6.   filename: '/home/dicoding/Playground/javascript/CoffeeMachine/state.js',
  7.   loaded: false,
  8.   children: [],
  9.   paths: [
  10.     '/home/dicoding/Playground/javascript/CoffeeMachine/node_modules',
  11.     '/home/dicoding/Playground/javascript/node_modules',
  12.     '/home/dicoding/Playground/node_modules',
  13.     '/home/dicoding/node_modules',
  14.     '/home/node_modules',
  15.     '/node_modules'
  16.   ]
  17. }

Lalu bagaimana caranya untuk melakukan import atau menggunakan object yang sudah di-export? Caranya adalah menggunakan method require().

  1. const coffeeStock = require('./state');
  2.  
  3. console.log(coffeeStock);
  4.  
  5. /* output
  6. { arabica: 100, robusta: 150, liberica: 200 }
  7. */

Dalam inisialisasi variabel coffeeStock (nama variabel bebas kita tentukan), kita gunakan method require() dengan memberikan parameter lokasi berkas state.js. Dengan begitu variabel coffeeStock akan memiliki nilai module.exports yang sama pada berkas state.js. Setelah mendapatkan nilainya, kita bebas menggunakannya seperti variabel lokal pada umumnya.

  1. const coffeeStock = require('./state');
  2.  
  3. const makeCoffee = (type, miligrams) => {
  4.     if (coffeeStock[type] >= miligrams) {
  5.         console.log("Kopi berhasil dibuat!");
  6.     } else {
  7.         console.log("Biji kopi habis!");
  8.     }
  9. }
  10.  
  11. makeCoffee("robusta", 80);
  12.  
  13. /* output
  14. Kopi berhasil dibuat!
  15. */

Tips: Jika kita menggunakan lokasi yang relatif (dapat berubah/dipindahkan), pastikan awali dengan menuliskan ./. Contohnya, berkas index.js dan state.js berada pada folder yang sama, maka kita cukup menuliskannya dengan ./state.js.

Posting Komentar
Theme
Share
Additional JS