Cara Mengatasi Kesalahan “wajib tidak ditentukan” di JavaScript/Node.js

Cara Mengatasi Kesalahan Wajib Tidak Ditentukan Di Javascript Node Js



Selama perjalanan pemrograman, kita mungkin mengalami berbagai kesalahan seperti kesalahan sintaksis atau kesalahan runtime. Kesalahan referensi adalah kesalahan runtime. Kesalahan referensi terjadi ketika variabel yang tidak diinisialisasi atau variabel yang tidak ada dalam cakupan saat ini telah direferensikan. Kesalahan “memerlukan tidak ditentukan” adalah kesalahan referensi yang menunjukkan bahwa ada masalah dengan kata kunci “membutuhkan”.

Artikel ini membahas secara rinci alasan terjadinya kesalahan ini dan cara memperbaikinya.

Bagaimana Mengatasi Kesalahan “wajib tidak ditentukan” di JavaScript/Node.js?

Kesalahan referensi “require is not found” terjadi ketika fungsi require() ditemukan di file JavaScript yang seharusnya dijalankan di browser web, bukan di lingkungan Node.js.







Apa itu Fungsi require()?

Fungsi require() memiliki cakupan global dan diberikan oleh Node.js. Ini memuat dan menjalankan modul dalam aplikasi Node.js. Banyak browser tidak mendukung Node.js sehingga fungsi require() tidak tersedia di dalamnya.



Kapan Kesalahan Ini Terjadi?

Kesalahan ini biasanya terjadi ketika JavaScript digunakan di kedua browser bersama dengan Node.js. Kesalahan dapat terjadi dalam tiga cara:



  • Ketika fungsi require() digunakan di lingkungan browser.
  • Ketika fungsi require() digunakan di Node.js dan file package.json, tipenya disetel ke “modul”
  • Ketika fungsi require() digunakan di Node.js, file tersebut memiliki ekstensi .mjs.

Menggunakan sintaksis const “ myFile = memerlukan('./file-saya') ” di lingkungan berbasis web akan memunculkan kesalahan seperti ini:





Mari kita bahas berbagai solusi untuk mengatasi kesalahan ini.



Kasus 1: Kesalahan di Lingkungan Browser

Fungsi require() bekerja secara khusus di Node.js. Sebagian besar browser kompatibel dengan Node.js sehingga tidak mendukung fungsi require(). Modul ekspor impor modul ES6 menyelesaikan kesalahan “ReferenceError require tidak ditentukan”. Berikut adalah contoh kode yang menunjukkan cara melakukannya:

DOCTYPEhtml >

< tubuh >





< jenis skrip = 'modul' src = 'index.js' > naskah >

< jenis skrip = 'modul' src = 'file.js' > naskah >

tubuh >

html >

Index.js dimuat terlebih dahulu agar fungsinya dapat dimanfaatkan di file.js.

file indeks.js

Index.js mendefinisikan produk fungsi dan variabel x dan y:

produk fungsi ekspor ( a, b ) {

kembali A * B ;

}

ekspor konstanta = 10 ;

ekspor konstanta Dan = 'TAYLOR'

file.js

Fungsi dari file index.js dapat digunakan di file js lain yang bernama file.js. File.js terlihat seperti:

impor { produk, x, y } dari './index.js' ;

menghibur. catatan ( produk ( 10 , 5 ) ) ; // akan menampilkan 50

menghibur. catatan ( X ) ; // akan menampilkan 10

menghibur. catatan ( Dan ) ; // akan menampilkan 'TAYLOR'

Keluaran

Output berikut menampilkan bagaimana kesalahan “memerlukan tidak ditentukan” di lingkungan browser dapat dihilangkan dengan menggunakan modul ekspor impor ES6:

Kasus 2: Kesalahan Saat Bekerja di Node.js

Dalam file package.json, menyetel properti type dengan modul value mendapatkan kesalahan ini. Hal ini juga dapat terjadi jika fungsi require() digunakan dalam file dengan ekstensi .mjs.

Kesalahan ini dapat dihilangkan ketika Anda menghapus properti tipe yang disetel ke modul dan file apa pun dengan ekstensi .mjs diganti namanya menjadi .js.

//paket.json

{

// hapus properti tipe yang disetel ke modul untuk menggunakan require()

'jenis' : 'modul' ,

}

file indeks.js

File index.js mendefinisikan fungsi “produk” dan variabel x dan y dengan cakupan variabel. Berikut tampilan file index.js:

produk fungsi ( a, b ) {

kembali A * B ;

}

global. X = 13 ;

global. Dan = 'cepat' ;

modul. ekspor = {

produk,

} ;

file.js

Dibutuhkan fungsi product dari file JS index.js dengan menggunakan kata kunci require(). File file.js akan terlihat seperti:

konstanta { produk } = memerlukan ( './index.js' ) ;

menghibur. catatan ( produk ( 10 , 9 ) ) ; // akan menampilkan 90

menghibur. catatan ( X ) ; // akan menampilkan 13

menghibur. catatan ( Dan ) ; // akan menampilkan 'cepat'

Keluaran

Outputnya menampilkan bagaimana kesalahan “Membutuhkan tidak ditemukan” dapat diselesaikan dengan menghapus properti tipe set to module dari file package.json:

Hal-hal untuk diingat

  • Sintaks modul ES6 untuk mengimpor modul memerlukan ekstensi file modul yang spesifik. JavaScript harus mengetahui jenis file untuk pemrosesan yang benar.
  • Modul ES6 tidak dapat digunakan secara bersamaan dengan fungsi require().

Kesimpulan

Menggunakan sintaks modul ES6 di browser menyelesaikan masalah “require is not didefinisikan” atau jika tidak, cuplikan kode harus dijalankan di Node.js. Kesalahan terjadi ketika fungsi require() digunakan di browser. Artikel ini membahas bagaimana masalah “persyaratan tidak ditentukan” dapat diselesaikan dengan sebuah contoh.