Kiire ülevaade
Mis on Node.js-i moodul?
Programmis Node.js on ' moodul ” vastab raamatukogule, mis loob rakendusega ühenduse selle konteksti alusel. See võimaldab arendajatel kapseldatud koodi vajaduse korral uuesti kasutada. See on jagatud kolme põhikategooriasse: 'sisseehitatud', 'kohalikud' ja 'kolmanda osapoole' moodulid. Need moodulid sisaldavad lisaks laia valikut meetodeid ja omadusi, mis teostavad vastavalt nende funktsioonidele määratud toiminguid.
Kuidas lahendada Node.js-i abil viga 'Moodulit ei leia'?
Selles jaotises on loetletud kõik võimalikud põhjused, mis tekitavad tõrketeate „Moodulit ei leia”, ning pakub ka toimivaid lahendusi selle lahendamiseks.
- Põhjus 1: moodul pole installitud
- Lahendus: installige nõutav moodul
- 2. põhjus: vale moodulitee
- Lahendus: määrake õige mooduli tee
- 3. põhjus: vale mooduli nimi (tõstutundlik)
- Lahendus.: Tippige õige mooduli nimi
- Põhjus 4: vale faililaiend
- Lahendus: tippige õige faililaiend
- Põhjus 5: mooduli globaalne installimine
- Lahendus: installige moodul kohapeal
- 6. põhjus: sisestusfail puudub
- Lahendus: installige nõutav moodul uuesti
- Mida teha, kui tõrge „Moodulit ei leia” ikka ei leia?
- Lahendus. Eemaldage kaust 'node_modules' ja fail 'packa-lock.json'.
Põhjus 1: vajalik moodul pole installitud
Kõige tavalisem põhjus, miks ' Moodulit ei leitud 'Viga on selles, et nõutav' kolmanda osapoole moodul pole installitud ” praeguses Node.js projektis. Oletame, et impordime Node.js-i rakendusse kolmanda osapoole 'mysql' mooduli järgmisel viisil:
konst mysql = nõuda ( 'mysql' ) ;
Ülaltoodud käsus on ' nõua () ” meetod sisaldab praeguse node.js rakenduse jaoks moodulit „mysql”.
Käivitage fail '.js':
sõlme indeks. jsAllolev väljund genereerib käsitletud vea, kuna praegusesse Node.js projekti ei ole installitud moodulit 'mysql'.
Lahendus: installige nõutav moodul
Eespool käsitletud vea lahendus on vajaliku mooduli õige installimine, kasutades ' npm / lõng ” paketihaldur. Selle stsenaariumi jaoks installitakse vajalik 'mysql' moodul koos 'npm' installikäsuga:
npm installige mysqlVäljund näitab mooduli 'mysql' edukat installimist praegusesse Node.js projekti:
Nüüd käivitage fail '.js' uuesti:
sõlme indeks. jsVõib analüüsida, et ülaltoodud käsk täideti edukalt ilma veateadet 'Moodulit ei leia' genereerimata:
2. põhjus: vale moodulitee
Teine põhjus, miks ' Moodulit ei leitud viga on ' vale moodulitee ”. Tavaliselt juhtub see siis, kui kasutaja impordib kohaliku mooduli selle suhtelise tee kaudu. Oletame, et kasutaja loob konkreetsesse kausta kohandatud mooduli ja impordib selle rakendusse Node.js. Enne seda veenduge, et määratud tee on õige, vastasel juhul ilmneb käsitletav viga.
Näiteks kohalik/kasutaja määratud moodul nimega ' myModule ” asub kaustas „./custom-modules”:
Kasutaja impordib ülaltoodud 'myModule' praegusesse Node.js rakendusse selle suhtelise tee kaudu:
konst keeled = nõuda ( './myModule' ) ;Käivitage fail „.js”:
sõlme indeks. jsOn näha, et “myModule” vale tee tõttu tekib tõrge “Moodulit ei leia”:
Lahendus: määrake õige mooduli tee
Eelpool käsitletud vea lahenduseks on määrata mooduli õige või täpne tee, kus see asub. Siin läbisime õige tee 'myModule', et lahendada tõrke 'Moodulit ei leia':
konst keeled = nõuda ( './custom-modules/myModule' ) ;Käivitage fail „.js”:
sõlme indeks. jsVõib täheldada, et allolev väljund ei näita tekkinud viga, kuna imporditud mooduli määratud tee on parandatud:
3. põhjus: vale mooduli nimi (tõstutundlik)
Moodulid on ' tõstutundlik ' Linuxis ja macOS-is, näiteks kui mooduli nimi on installitud suurtähtedega ja kasutaja impordib selle väiketähtedega, siis ' Moodulit ei leitud ” genereeritakse viga. Põhjus on selles, et tegelik mooduli nimi ja impordilause ei ühti.
Siin imporditakse installitud moodul 'csvtojson' 'suurtähtedega' rakendusse Node.js:
konst csvtojson = nõuda ( 'CSVTOJSON' ) ;Käivitage fail '.js':
sõlme indeks. jsVäljund genereerib mooduli vale nime tõttu vea 'Moodulit ei leia':
Lahendus.: Tippige õige mooduli nimi
Ülaltoodud vea lahendus on määrata imporditud mooduli õige suurtäht (alumine või ülemine), kasutades ' nõua () ” meetod. Selle stsenaariumi korral on moodul 'csvtojson' määratud meetodis 'require()' õiges kirjas:
konst csvtojson = nõuda ( 'csvtojson' ) ;Käivitage fail „.js” uuesti:
sõlme indeks. jsNüüd ei tekitanud ülaltoodud käsk tõrketeadet 'Moodulit ei leia', kuna imporditud paketi juhtum on sama, mis selle tegelik nimi:
Põhjus 4: vale faililaiend
' Moodulit ei leitud ' viga võib ilmneda ka ' vale faililaiend ”. Sarnaselt vale failiteega juhtub see ka kohalike moodulite puhul. Näiteks luuakse kohalik moodul faili „.json” ja see määratakse rakenduses Node.js laiendiga „.js”, seejärel genereeritakse ülaltoodud konkreetne viga:
Selle stsenaariumi korral on ' myModule.js ' Vale mooduli tee' põhjuses näidatud ”, võetakse näidisfailina. Sellele pääseb juurde praeguses rakenduses Node.js, määrates selle laiendi „.json” järgmiselt:
konst keeled = nõuda ( './custom-modules/myModule.json' ) ;Käivitage fail '.js':
sõlme indeks. jsVäljund genereerib tõrke 'Moodulit ei leia', kuna faili 'myModule' faililaiend on vale:
Lahendus: tippige õige faililaiend
Arutatud vea lahenduseks on sisestada õige faililaiend, milles kohalik moodul luuakse. Näiteks määrasime faili „myModule.js” õige faililaiendi, et lahendada tõrke „Moodulit ei leia”:
konst keeled = nõuda ( './custom-modules/myModule.js' ) ;Käivitage fail „.js”:
sõlme indeks. jsNüüd on ülaltoodud käsk edukalt täidetud, ilma et oleks kuvatud viga 'Moodulit ei leia':
Põhjus 5: mooduli globaalne installimine
Sõlmemooduleid saab installida lokaalselt (konkreetse projekti jaoks) või globaalselt (kõikide projektide jaoks). Linuxis , Kui vajalik moodul on installitud globaalselt operatsioonisüsteemi ja sellele pääseb juurde konkreetse projekti kaudu ilma kohaliku installita, siis ' Moodulit ei leitud ” genereeritakse viga.
Näiteks ' mongodb ” moodul on globaalselt installitud Linuxi operatsioonisüsteemi läbi „ sudo npm install -g mongodb ” käsk ja sellele pääseb juurde lokaalselt konkreetses sõlmeprojektis:
konst mongodb = nõuda ( 'mongodb' )Käivitage fail „.js”:
sõlme indeks. jsVäljund genereerib arutatud vea, kuna 'mongodb' ei ole praeguses Node projektis kohapeal installitud:
Lahendus: installige moodul kohapeal
Ilmunud vea lahendus on mooduli lokaalne installimine konkreetse Node.js projekti jaoks Linuxi-põhisesse operatsioonisüsteemi.
Siin on ' mongodb ” moodul installitakse praegusesse projekti lokaalselt installikäsu “npm” abil:
npm installi mongodb
Kui 'mongodb' kohalik installimine on lõpetatud, importige see faili '.js' ja käivitage see:
sõlme indeks. jsOn näha, et viga 'Moodulit ei leia' on lahendatud, installides praeguse Node.js projekti jaoks kohapeal mooduli 'mongodb':
Windowsis mooduli globaalne ja kohalik installimine ei tekita tõrget 'Moodulit ei leia'.
6. põhjus: sisestusfail puudub
' Moodulit ei leitud ” tõrge võib tekkida ka seetõttu, et mooduli paketis „package.json” puudub põhisisestusfail. Iga mooduli peamine sisestusfail on vaikimisi fail 'index.js'.
Oletame, et kui kasutaja eemaldab selle tahtmatult, siis genereeritakse ülaltoodud viga. Selle põhjuseks on asjaolu, et määratud mooduli importimisel kuvatakse ' nõua () ” meetod navigeerib selle mooduli kausta ja otsib sisestuspunkti, kui seda pole, ei saa ta seda moodulit Node.js rakendusse importida.
Vajaliku mooduli sisestusfail 'index.js' asub selle kaustastruktuuris. Allolev fragment näitab 'mysql' mooduli sisestusfaili:
Nüüd eemaldatakse ülaltoodud fail 'index.js' kaustast 'mysql' ja seejärel imporditakse 'mysql' moodul Node.js rakendusse:
konst mysql = nõuda ( 'mysql' )Käivitage fail '.js':
sõlme indeks. jsSiin genereerib väljund vea 'Moodulit ei leia', kuna puudub mooduli 'mysql' sisestusfail:
Lahendus: installige nõutav moodul uuesti
Lahendus ülaltoodud veale on kustutada ' node_modules ” kataloogi ja installige vajalik moodul uuesti. Siin installitakse moodul 'mysql' uuesti pärast kataloogi 'node_modules' kustutamist:
npm installige mysql
Pärast 'mysql' edukat installimist ilmub uus ' node_modules ' kataloog genereeritakse automaatselt, mis sisaldab 'mysql' mooduli kaustastruktuuri, milles 'index.js' on:
Nüüd käivitage fail „.js” uuesti:
sõlme indeks. jsSiin ei tekita väljund viga 'Moodulit ei leia', kuna 'mysql' moodulis on sisestusfail nimega 'index.js'.
Mida teha, kui tõrge „Moodulit ei leia” ikka ei leia?
Kui ' Moodulit ei leitud tõrge püsib pärast selle lahendamist mõne ülaltoodud lahendusega, seejärel kustutage node_modules ” kausta. Kaust 'node_modules' genereeritakse automaatselt, kui installitakse kolmanda osapoole moodul. See sisaldab kõiki kolmanda osapoole pakette, millest Node.js projekt sõltub.
Veelgi enam, ' package-lock.json ” fail genereeritakse automaatselt ka siis, kui pakett on installitud koos „npm”-ga. See säilitab nii sõltuvuste kui ka alamsõltuvuste arvestust, millest pakett sõltub, ja nende versioonid. Kui pakett on installitud koos 'lõngaga', on selle faili nimi ' lõng.lukk ”.
Lahendus. Eemaldage kaust 'node_modules' ja fail 'packa-lock.json'.
Ilmunud tõrke lahenduseks on kaust “node_modules” ja fail “package-lock.json/yarn.lock” kustutamine ning vajaliku paketi uuesti installimine.
Linuxis , saab ülaltoodud kausta ja faile kustutada alltoodud ' rm (eemalda)” käsk:
rm - rf node_modules pakett - lukk. json //Kausta ja faili kustutaminels // Kuva failid ja kataloogid
Ülaltoodud käsus ' -r ' lipp kustutab määratud kausta ' rekursiivselt ', sealhulgas kõik selle alamkataloogid ja ' f ' lipp käsib tõlgil seda ülesannet täita ' jõuliselt ”:
Väljund näitab, et kaust “node_modules” ja fail “package-lock.json/yarn.lock” on praegusest projektist Node.js täielikult eemaldatud:
Windowsis , saab kasutaja kustutada kausta 'node_modules' ja faili 'package-lock.json/yarn.lock', vajutades lihtsalt ' kustutada ” klahvi või kasutades rippmenüü valikut „kustuta”.
See kõik puudutab Node.js-i vea „Moodulit ei leia” lahendamist.
Järeldus
Et lahendada ' Moodulit ei leitud ” tõrge, „installige vajalik moodul”, „määrake selle õige tee”, „sisestage meetodis „require()” õige suurtäht ja ka „tippige õige faililaiend”. Lisaks saab projektis Node.js lahendada mooduli lokaalse installimise. Kui konkreetne tõrge püsib, eemaldage kaust 'node_modules', fail 'package-lock.json' ja seejärel installige vajalik moodul uuesti 'npm/yarn' kaudu. Selles postituses on käsitletud kõiki võimalikke põhjuseid ja nende lahendust tõrke „Moodulit ei leia” lahendamiseks Node.js abil.