Bagaimana untuk Menyelesaikan Ralat 'Tidak dapat mencari modul' Menggunakan Node.js?

Bagaimana Untuk Menyelesaikan Ralat Tidak Dapat Mencari Modul Menggunakan Node Js



Seperti bahasa pengaturcaraan lain, Node.js tidak perlu memecahkan kod sumber aplikasi kepada kepingan kecil. Ia menulis semua kod sumber ke dalam fail '.js' dan jurubahasa tidak menyebabkan sebarang masalah. Walau bagaimanapun, semasa mencipta aplikasi Node.js yang sangat kompleks adalah disyorkan untuk membahagikan kod sumber kepada modul yang lebih kecil dan kemudian menggabungkannya ke dalam aplikasi yang padu.

Rangka Pantas

Apakah itu Modul dalam Node.js?

Dalam Node.js, ' modul ” sepadan dengan perpustakaan yang membina sambungan dengan aplikasi berdasarkan konteksnya. Ia membolehkan pembangun untuk menggunakan semula kod terkapsul bila-bila masa ia diperlukan. Ia dikategorikan kepada tiga kategori utama: modul 'terbina dalam', 'tempatan' dan 'pihak ketiga'. Modul ini seterusnya mengandungi pelbagai kaedah dan sifat yang melaksanakan operasi yang ditentukan mengikut fungsinya.







Bagaimana untuk Menyelesaikan Ralat 'Tidak dapat mencari modul' Menggunakan Node.js?

Bahagian ini menyenaraikan semua kemungkinan sebab yang menjana ralat 'Tidak dapat mencari modul' dan juga menyediakan penyelesaian yang boleh dilaksanakan untuk menyelesaikannya:



Sebab 1: Modul yang Diperlukan Tidak Dipasang

Sebab yang paling biasa untuk ' Tidak dapat mencari modul 'Ralat ialah yang diperlukan' modul pihak ketiga tidak dipasang ” dalam projek Node.js semasa. Katakan, kami mengimport modul 'mysql' pihak ketiga dalam aplikasi Node.js dengan cara ini:



const mysql = memerlukan ( 'mysql' ) ;

Dalam arahan di atas, ' memerlukan() ' kaedah termasuk modul 'mysql' kepada aplikasi node.js semasa.





Jalankan fail '.js':

indeks nod. js

Output di bawah menjana ralat yang dibincangkan kerana modul 'mysql' tidak dipasang dalam projek Node.js semasa:



Penyelesaian: Pasang Modul yang Diperlukan

Penyelesaian kepada ralat yang dibincangkan di atas ialah memasang modul yang diperlukan dengan betul dengan bantuan ' npm / benang ” pengurus pakej. Untuk senario ini, modul 'mysql' yang diperlukan dipasang dengan arahan pemasangan 'npm':

npm pasang mysql

Output menunjukkan pemasangan modul 'mysql' yang berjaya dalam projek Node.js semasa:

Sekarang laksanakan fail '.js' sekali lagi:

indeks nod. js

Ia boleh dianalisis bahawa arahan di atas dilaksanakan dengan jayanya tanpa menghasilkan ralat 'Tidak dapat mencari modul':

Sebab 2: Laluan Modul Salah

Satu lagi sebab untuk ' Tidak dapat mencari modul 'kesilapan ialah' laluan modul yang salah ”. Ia biasanya berlaku apabila pengguna mengimport modul tempatan melalui laluan relatifnya. Katakan, pengguna mencipta modul tersuai ke dalam folder tertentu dan mengimportnya ke dalam aplikasi Node.js. Sebelum melakukan ini, pastikan laluan yang ditentukan adalah betul jika tidak ralat yang dibincangkan akan ditemui.

Sebagai contoh, modul tempatan/ditakrifkan pengguna bernama “ myModule ” terdapat dalam folder “./custom-modules”:

Pengguna mengimport 'myModule' yang diserlahkan di atas ke dalam aplikasi Node.js semasa melalui laluan relatifnya:

const bahasa = memerlukan ( './myModule' ) ;

Jalankan fail '.js':

indeks nod. js

Ia dapat dilihat bahawa disebabkan laluan 'myModule' yang salah, Ralat 'Tidak dapat mencari modul' dijana:

Penyelesaian: Tentukan Laluan Modul yang Betul

Penyelesaian kepada ralat yang dibincangkan di atas adalah untuk menentukan laluan yang betul atau tepat bagi modul di mana ia berada. Di sini, kami melepasi laluan yang betul iaitu 'myModule' untuk menyelesaikan ralat 'Tidak dapat mencari modul':

const bahasa = memerlukan ( './custom-modules/myModule' ) ;

Mulakan fail '.js':

indeks nod. js

Dapat diperhatikan bahawa output di bawah tidak menunjukkan ralat yang dihadapi kerana laluan tertentu bagi modul yang diimport telah diperbetulkan:

Sebab 3: Nama Modul Salah (Sensitif Huruf Besar)

Modul tersebut ialah “ kes-sensitif ” dalam Linux dan macOS, seperti jika nama modul dipasang dalam huruf besar dan pengguna mengimportnya ke dalam huruf kecil kemudian “ Tidak dapat mencari modul ” ralat akan dihasilkan. Ini kerana terdapat ketidakpadanan antara nama modul sebenar dan penyata import.

Di sini, modul 'csvtojson' yang dipasang diimport dalam 'huruf besar' ke dalam aplikasi Node.js:

const csvtojson = memerlukan ( 'CSVTOJSON' ) ;

Jalankan fail '.js':

indeks nod. js

Output menjana ralat 'Tidak dapat mencari modul' kerana nama modul yang salah:

Penyelesaian: Taipkan Nama Modul yang Betul

Penyelesaian kepada ralat muka di atas adalah untuk menentukan kes yang betul (bawah atau atas) modul yang diimport semasa menggunakan ' memerlukan() ” kaedah. Dalam senario ini, modul 'csvtojson' ditentukan dalam kaedah 'require()' dalam kes yang betul:

const csvtojson = memerlukan ( 'csvtojson' ) ;

Jalankan fail '.js' sekali lagi:

indeks nod. js

Sekarang, arahan di atas tidak menghasilkan ralat 'Tidak dapat mencari modul' kerana kes pakej yang diimport adalah sama dengan nama sebenar:

Sebab 4: Sambungan Fail Salah

' Tidak dapat mencari modul ralat juga boleh berlaku disebabkan oleh sambungan fail yang salah ”. Sama seperti laluan fail yang salah, ia berlaku dalam kes modul tempatan. Sebagai contoh, modul setempat dicipta ke dalam fail '.json' dan dinyatakan dalam aplikasi Node.js dengan sambungan '.js' kemudian ralat tertentu di atas dijana:

Dalam senario ini, ' myModule.js ” yang ditunjukkan dalam alasan “ Laluan Modul Salah” diambil sebagai fail sampel. Ia diakses dalam aplikasi Node.js semasa dengan menyatakan sambungannya '.json' seperti ini:

const bahasa = memerlukan ( './custom-modules/myModule.json' ) ;

Jalankan fail '.js':

indeks nod. js

Output menjana ralat 'Tidak dapat mencari modul' kerana sambungan fail yang salah bagi fail 'myModule':

Penyelesaian: Taip Sambungan Fail Betul

Penyelesaian kepada ralat yang dibincangkan adalah dengan menaip sambungan fail yang betul di mana modul tempatan dicipta. Sebagai contoh, kami menyatakan sambungan fail yang betul bagi fail 'myModule.js' untuk menyelesaikan ralat 'Tidak dapat mencari modul':

const bahasa = memerlukan ( './custom-modules/myModule.js' ) ;

Jalankan fail '.js':

indeks nod. js

Sekarang, arahan di atas telah dilaksanakan dengan jayanya tanpa menunjukkan ralat 'Tidak dapat mencari modul':

Sebab 5: Pemasangan Global Modul

Modul nod boleh dipasang secara tempatan (untuk projek tertentu) atau secara global (untuk semua projek). Dalam Linux , Jika modul yang diperlukan dipasang secara global dalam sistem pengendalian dan diakses dalam projek tertentu tanpa pemasangan tempatan maka ' Tidak dapat mencari modul ” ralat dihasilkan.

Sebagai contoh, ' mongodb 'modul dipasang secara global ke dalam sistem pengendalian Linux melalui ' sudo npm install -g mongodb ” perintah dan diakses secara tempatan dalam projek nod tertentu:

const mongodb = memerlukan ( 'mongodb' )

Jalankan fail '.js':

indeks nod. js

Output menjana ralat yang dibincangkan kerana 'mongodb' tidak dipasang secara tempatan dalam projek Node semasa:

Penyelesaian: Pasang Modul Secara Setempat

Penyelesaian kepada ralat yang dihadapi ialah memasang modul secara setempat untuk projek Node.js tertentu pada sistem pengendalian berasaskan Linux.

Di sini, ' mongodb modul dipasang secara tempatan dalam projek semasa dengan bantuan arahan pemasangan 'npm':

npm pasang mongodb

Apabila pemasangan tempatan 'mongodb' selesai, importnya ke dalam fail '.js' dan laksanakannya:

indeks nod. js

Ia boleh dilihat bahawa ralat 'Tidak dapat mencari modul' telah diselesaikan dengan memasang modul 'mongodb' secara setempat untuk projek Node.js semasa:

Dalam Windows, pemasangan global dan tempatan modul tidak menjana ralat 'Tidak dapat mencari modul'.

Sebab 6: Fail Kemasukan Hilang

' Tidak dapat mencari modul ralat ” juga boleh dijana kerana kehilangan fail entri utama dalam “package.json” modul. Fail kemasukan utama setiap modul ialah fail 'index.js' secara lalai.

Katakan, Jika pengguna membuangnya secara tidak sengaja maka ralat yang dihadapi di atas akan dihasilkan. Ini kerana semasa mengimport modul yang ditentukan, ' memerlukan() ” kaedah menavigasi ke folder modul itu dan mencari titik masuk, jika ia tidak wujud maka ia tidak boleh mengimport modul tersebut ke dalam aplikasi Node.js.

Fail masukan 'index.js' modul yang diperlukan terdapat di dalam struktur foldernya. Coretan di bawah menunjukkan fail masukan modul 'mysql':

Sekarang, fail 'index.js' yang diserlahkan di atas dialih keluar daripada folder 'mysql' dan kemudian mengimport modul 'mysql' ke dalam aplikasi Node.js:

const mysql = memerlukan ( 'mysql' )

Jalankan fail '.js':

indeks nod. js

Di sini, output menjana ralat 'Tidak dapat mencari modul' kerana kehilangan fail masukan modul 'mysql':

Penyelesaian: Pasang Modul Diperlukan Sekali lagi

Penyelesaian kepada ralat yang dihadapi di atas adalah untuk memadam ' modul_nod ” dan pasang modul yang diperlukan sekali lagi. Di sini, modul 'mysql' dipasang semula selepas memadamkan direktori 'node_modules':

npm pasang mysql

Selepas pemasangan 'mysql' berjaya, ' modul_nod direktori ” dijana secara automatik yang mengandungi struktur folder modul “mysql” di mana “index.js” hadir:

Sekarang, jalankan fail '.js' sekali lagi:

indeks nod. js

Di sini, output tidak menjana sebarang ralat 'Tidak dapat mencari modul' kerana kewujudan fail masukan bernama 'index.js' modul 'mysql':

Apa Yang Perlu Dilakukan Jika Ralat 'Tidak Dapat Menemui Modul' Masih Berterusan?

Jika ' Tidak dapat mencari modul ' ralat berterusan selepas menyelesaikannya dengan mana-mana penyelesaian di atas kemudian padamkan ' modul_nod ” folder. Folder 'node_modules' dijana secara automatik apabila modul pihak ketiga dipasang. Ia mengandungi semua pakej pihak ketiga yang bergantung kepada projek Node.js.

Selain itu, ' package-lock.json ” fail juga secara automatik menjana apabila pakej dipasang dengan “npm”. Ia menyimpan rekod kebergantungan serta sub-kebergantungan di mana pakej bergantung bersama-sama dengan versi mereka. Jika pakej dipasang dengan 'benang' maka nama fail ini ialah ' benang.kunci ”.

Penyelesaian: Alih keluar Folder 'node_modules' dan Fail 'package-lock.json'.

Penyelesaian kepada ralat yang dihadapi ialah memadam folder 'node_modules' dan fail 'package-lock.json/yarn.lock' dan pasang semula pakej yang diperlukan.

Dalam Linux , folder dan fail yang dinyatakan di atas boleh dipadamkan dengan bantuan “ yang dinyatakan di bawah rm (alih keluar)” perintah:

rm - pakej rf node_modules - kunci. json //Padam Folder dan Fail

ls // Paparkan Fail dan Direktori

Dalam perintah di atas ' -r 'bendera memadam folder yang ditentukan' secara rekursif ” termasuk semua subdirektorinya dan “ f 'bendera memberitahu jurubahasa untuk melaksanakan tugas ini' secara paksa ”:

Output menunjukkan bahawa folder 'node_modules' dan fail 'package-lock.json/yarn.lock' telah dialih keluar sepenuhnya daripada projek Node.js semasa:

Dalam Windows , pengguna boleh memadam folder “node_modules” dan fail “package-lock.json/yarn.lock” hanya dengan menekan butang “ padam kekunci ” atau menggunakan pilihan “padam” daripada menu lungsur.

Itu sahaja tentang menyelesaikan ralat 'Tidak dapat mencari modul' dalam Node.js.

Kesimpulan

Untuk menyelesaikan ' Tidak dapat mencari modul ralat ”, “pasang modul yang diperlukan”, “tentukan laluannya yang betul”, “taip kes yang betul dalam kaedah “require()””, dan juga “taip sambungan fail yang betul”. Selain itu, ia juga boleh diselesaikan untuk 'memasang modul secara setempat' dalam projek Node.js. Jika ralat tertentu berterusan maka alih keluar folder 'node_modules', fail 'package-lock.json', dan kemudian pasang modul yang diperlukan sekali lagi melalui 'npm/yarn'. Siaran ini telah membincangkan semua kemungkinan sebab bersama-sama dengan penyelesaian mereka untuk menyelesaikan ralat 'Tidak dapat mencari modul' menggunakan Node.js.