Ātrā kontūra
- Kas ir “Modulis” pakalpojumā Node.js?
- Kā novērst kļūdu “Nevar atrast moduli”, izmantojot Node.js?
- Secinājums
Kas ir modulis pakalpojumā Node.js?
Vietnē Node.js “ modulis ” atbilst bibliotēkai, kas veido savienojumu ar lietojumprogrammu, pamatojoties uz tās kontekstu. Tas ļauj izstrādātājiem atkārtoti izmantot iekapsulēto kodu, kad vien tas ir nepieciešams. Tas ir iedalīts trīs galvenajās kategorijās: “iebūvētie”, “lokālie” un “trešās puses” moduļi. Šie moduļi turklāt satur plašu metožu un īpašību klāstu, kas veic darbības, kas norādītas atbilstoši to funkcionalitātei.
Kā novērst kļūdu “Nevar atrast moduli”, izmantojot Node.js?
Šajā sadaļā ir uzskaitīti visi iespējamie iemesli, kas rada kļūdu “Nevar atrast moduli”, kā arī sniegti praktiski risinājumi tās novēršanai:
- 1. iemesls: modulis nav instalēts
- Risinājums: instalējiet nepieciešamo moduli
- 2. iemesls: nepareizs moduļa ceļš
- Risinājums: norādiet pareizo moduļa ceļu
- 3. iemesls: nepareizs moduļa nosaukums (reģistrjutīgs)
- Risinājums: ierakstiet pareizo moduļa nosaukumu
- 4. iemesls: nepareizs faila paplašinājums
- Risinājums: ierakstiet pareizo faila paplašinājumu
- 5. iemesls: globāla moduļa instalēšana
- Risinājums: instalējiet moduli lokāli
- 6. iemesls: trūkst ievades faila
- Risinājums: vēlreiz instalējiet nepieciešamo moduli
- Ko darīt, ja joprojām pastāv kļūda “Nevar atrast moduli”?
- Risinājums: noņemiet mapi “node_modules” un failu “package-lock.json”.
1. iemesls: nepieciešamais modulis nav instalēts
Visizplatītākais iemesls ' Nevar atrast moduli 'Kļūda ir tāda, ka nepieciešamais' trešās puses modulis nav instalēts ” pašreizējā Node.js projektā. Pieņemsim, ka mēs importējam trešās puses “mysql” moduli lietojumprogrammā Node.js šādā veidā:
konst mysql = pieprasīt ( 'mysql' ) ;
Iepriekš minētajā komandā ' prasīt () ” metode ietver “mysql” moduli pašreizējai node.js lietojumprogrammai.
Izpildiet failu “.js”:
mezglu indekss. jsTālāk redzamā izvade ģenerē apspriesto kļūdu, jo 'mysql' modulis nav instalēts pašreizējā Node.js projektā:
Risinājums: instalējiet nepieciešamo moduli
Iepriekš apspriestās kļūdas risinājums ir pareizi instalēt nepieciešamo moduli, izmantojot “ npm / dzija ” pakotņu pārvaldnieks. Šim scenārijam nepieciešamais “mysql” modulis ir instalēts ar instalēšanas komandu “npm”:
npm instalēt mysqlIzvade parāda veiksmīgu “mysql” moduļa instalēšanu pašreizējā Node.js projektā:
Tagad vēlreiz izpildiet failu “.js”:
mezglu indekss. jsVar analizēt, ka iepriekš minētā komanda tika veiksmīgi izpildīta, neģenerējot kļūdu “Nevar atrast moduli”:
2. iemesls: nepareizs moduļa ceļš
Vēl viens iemesls ' Nevar atrast moduli 'kļūda ir ' nepareizs moduļa ceļš ”. Parasti tas notiek, kad lietotājs importē vietējo moduli, izmantojot tā relatīvo ceļu. Pieņemsim, ka lietotājs izveido pielāgotu moduli konkrētajā mapē un importē to lietojumprogrammā Node.js. Pirms to izdarīt, pārliecinieties, vai norādītais ceļš ir pareizs, pretējā gadījumā tiks sastapta apspriestā kļūda.
Piemēram, lokāls/lietotāja definēts modulis ar nosaukumu “ myModule ' atrodas mapē './custom-modules':
Lietotājs importē iepriekš izcelto “myModule” pašreizējā Node.js lietojumprogrammā, izmantojot tās relatīvo ceļu:
konst valodas = pieprasīt ( './myModule' ) ;Palaidiet failu “.js”:
mezglu indekss. jsVar redzēt, ka nepareizā “myModule” ceļa dēļ tiek ģenerēta kļūda “Nevar atrast moduli”:
Risinājums: norādiet pareizo moduļa ceļu
Iepriekš apspriestās kļūdas risinājums ir norādīt pareizo vai precīzu moduļa ceļu, kurā tas atrodas. Šeit mēs izgājām pareizo ceļu “myModule”, lai atrisinātu kļūdu “Nevar atrast moduli”:
konst valodas = pieprasīt ( './custom-modules/myModule' ) ;Sāciet “.js” failu:
mezglu indekss. jsVar novērot, ka zemāk redzamā izvade neuzrāda radušos kļūdu, jo ir izlabots norādītais importētā moduļa ceļš:
3. iemesls: nepareizs moduļa nosaukums (reģistrjutīgs)
Moduļi ir ' reģistrjutīgs ” operētājsistēmās Linux un macOS, piemēram, ja moduļa nosaukums ir instalēts ar lielajiem burtiem un lietotājs to importē ar mazajiem burtiem, tad “ Nevar atrast moduli ” tiks ģenerēta kļūda. Tas ir tāpēc, ka pastāv neatbilstība starp faktisko moduļa nosaukumu un importēšanas paziņojumu.
Šeit instalētais modulis “csvtojson” tiek importēts ar “lielajiem burtiem” lietojumprogrammā Node.js:
konst csvtojson = pieprasīt ( 'CSVTOJSON' ) ;Izpildiet failu “.js”:
mezglu indekss. jsIzvade rada kļūdu “Nevar atrast moduli” nepareiza moduļa nosaukuma dēļ:
Risinājums: ierakstiet pareizo moduļa nosaukumu
Iepriekš minētās kļūdas risinājums ir norādīt pareizo importētā moduļa reģistru (apakšējo vai augšējo), vienlaikus izmantojot “ prasīt () ” metode. Šajā scenārijā modulis “csvtojson” ir norādīts metodē “require()” pareizajā gadījumā:
konst csvtojson = pieprasīt ( 'csvtojson' ) ;Palaidiet failu “.js” vēlreiz:
mezglu indekss. jsTagad iepriekš minētā komanda neradīja kļūdu “Nevar atrast moduli”, jo importētās pakotnes gadījums ir tāds pats kā tās faktiskais nosaukums:
4. iemesls: nepareizs faila paplašinājums
' Nevar atrast moduli ' kļūda var rasties arī ' nepareizs faila paplašinājums ”. Līdzīgi kā nepareizs faila ceļš, tas notiek vietējo moduļu gadījumā. Piemēram, lokālais modulis tiek izveidots failā “.json” un tiek norādīts lietojumprogrammā Node.js ar paplašinājumu “.js”, tad tiek ģenerēta iepriekš minētā kļūda:
Šajā scenārijā “ myModule.js ”, kas norādīts sadaļā “ Nepareizs moduļa ceļš”, tiek ņemts par faila paraugu. Tam var piekļūt pašreizējā lietojumprogrammā Node.js, norādot tā paplašinājumu “.json” šādi:
konst valodas = pieprasīt ( './custom-modules/myModule.json' ) ;Izpildiet failu “.js”:
mezglu indekss. jsIzvade rada kļūdu “Nevar atrast moduli”, jo failam “myModule” ir nepareizs faila paplašinājums:
Risinājums: ierakstiet pareizo faila paplašinājumu
Apspriežamās kļūdas risinājums ir ievadīt pareizo faila paplašinājumu, kurā ir izveidots lokālais modulis. Piemēram, mēs norādījām pareizo faila paplašinājumu failam “myModule.js”, lai novērstu kļūdu “Nevar atrast moduli”.
konst valodas = pieprasīt ( './custom-modules/myModule.js' ) ;Palaidiet failu “.js”:
mezglu indekss. jsTagad iepriekš minētā komanda ir veiksmīgi izpildīta, neparādot kļūdu “Nevar atrast moduli”:
5. iemesls: moduļa globāla instalēšana
Mezglu moduļus var instalēt lokāli (konkrētam projektam) vai globāli (visiem projektiem). Operētājsistēmā Linux , Ja nepieciešamais modulis ir instalēts globāli operētājsistēmā un tam piekļūst noteiktā projektā bez lokālās instalācijas, tad “ Nevar atrast moduli ” tiek ģenerēta kļūda.
Piemēram, “ mongodb ” modulis ir globāli instalēts Linux operētājsistēmā, izmantojot sudo npm instalējiet -g mongodb ” komandu un tai var piekļūt lokāli konkrētajā mezgla projektā:
konst mongodb = pieprasīt ( 'mongodb' )Palaidiet failu “.js”:
mezglu indekss. jsIzvade ģenerē apspriesto kļūdu, jo “mongodb” nav lokāli instalēts pašreizējā Node projektā:
Risinājums: instalējiet moduli lokāli
Konstatētās kļūdas risinājums ir lokāli instalēt moduli konkrētam Node.js projektam operētājsistēmā, kuras pamatā ir Linux.
Šeit “ mongodb ” modulis tiek instalēts lokāli pašreizējā projektā ar instalēšanas komandas “npm” palīdzību:
npm instalējiet mongodb
Kad vietēja “mongodb” instalēšana ir pabeigta, importējiet to failā “.js” un izpildiet to:
mezglu indekss. jsVar redzēt, ka kļūda “Nevar atrast moduli” ir novērsta, lokāli instalējot moduli “mongodb” pašreizējam Node.js projektam:
Operētājsistēmā Windows, globālā un lokālā moduļa instalēšana neģenerē kļūdu “Nevar atrast moduli”.
6. iemesls: trūkst ievades faila
' Nevar atrast moduli ” kļūdu var ģenerēt arī tāpēc, ka moduļa failā “package.json” trūkst galvenā ievades faila. Katra moduļa galvenais ievades fails pēc noklusējuma ir fails “index.js”.
Pieņemsim, ka, ja lietotājs to nejauši noņem, tiks ģenerēta iepriekš sastaptā kļūda. Tas ir tāpēc, ka, importējot norādīto moduli, ' prasīt () ” metode pāriet uz šī moduļa mapi un meklē ievades punktu, ja tā neeksistē, tā nevar importēt šo moduli lietojumprogrammā Node.js.
Nepieciešamā moduļa ievades fails “index.js” atrodas tā mapju struktūrā. Tālāk redzamais fragments parāda “mysql” moduļa ievades failu:
Tagad iepriekš iezīmētais fails “index.js” tiek noņemts no mapes “mysql” un pēc tam importēts “mysql” modulis lietojumprogrammā Node.js:
konst mysql = pieprasīt ( 'mysql' )Izpildiet failu “.js”:
mezglu indekss. jsŠeit izvade ģenerē kļūdu “Nevar atrast moduli”, jo trūkst moduļa “mysql” ievades faila:
Risinājums: vēlreiz instalējiet nepieciešamo moduli
Iepriekš radušās kļūdas risinājums ir izdzēst “ node_modules ” direktoriju un vēlreiz instalējiet vajadzīgo moduli. Šeit modulis “mysql” tiek atkārtoti instalēts pēc direktorija “node_modules” dzēšanas:
npm instalēt mysql
Pēc veiksmīgas “mysql” instalēšanas jaunais “ node_modules ' tiek automātiski ģenerēts direktorijs, kurā ir moduļa 'mysql' mapju struktūra, kurā atrodas 'index.js':
Tagad vēlreiz palaidiet failu “.js”:
mezglu indekss. jsŠeit izvade nerada kļūdu “Nevar atrast moduli”, jo pastāv “mysql” moduļa ievades fails ar nosaukumu “index.js”.
Ko darīt, ja joprojām pastāv kļūda “Nevar atrast moduli”?
Ja “ Nevar atrast moduli ” kļūda saglabājas pēc tās atrisināšanas ar kādu no iepriekš minētajiem risinājumiem, tad izdzēsiet node_modules ” mapi. Mape “node_modules” tiek automātiski ģenerēta, kad tiek instalēts trešās puses modulis. Tajā ir visas trešās puses pakotnes, no kurām ir atkarīgs Node.js projekts.
Turklāt ' pack-lock.json ” fails tiek automātiski ģenerēts arī tad, kad pakotne ir instalēta ar “npm”. Tas saglabā atkarību, kā arī apakšatkarību uzskaiti, no kurām ir atkarīga pakotne, kā arī to versijas. Ja pakotne ir instalēta ar “diju”, šis faila nosaukums ir “ dzija.slēdzene ”.
Risinājums: noņemiet mapi “node_modules” un failu “package-lock.json”.
Konstatētās kļūdas risinājums ir izdzēst mapi “node_modules” un failu “package-lock.json/yarn.lock” un vēlreiz instalēt nepieciešamo pakotni.
Operētājsistēmā Linux , iepriekš norādīto mapi un failus var izdzēst, izmantojot tālāk norādīto “ rm (noņemt)” komanda:
rm - rf node_modules pakotne - slēdzene. json //Dzēst mapi un failuls // Parādīt failu un direktorijus
Iepriekš minētajā komandā ' -r ' karogs dzēš norādīto mapi ' rekursīvi ', ieskaitot visus tā apakšdirektorijus un ' f 'karogs liek tulkam veikt šo uzdevumu' ar spēku ”:
Izvade parāda, ka mape “node_modules” un fails “package-lock.json/yarn.lock” ir pilnībā noņemti no pašreizējā Node.js projekta:
Operētājsistēmā Windows , lietotājs var izdzēst mapi “node_modules” un failu “package-lock.json/yarn.lock”, vienkārši nospiežot “ dzēst ” taustiņu vai izmantojot nolaižamās izvēlnes opciju “dzēst”.
Tas viss attiecas uz kļūdas “Nevar atrast moduli” novēršanu vietnē Node.js.
Secinājums
Lai atrisinātu ' Nevar atrast moduli ” kļūdu, “instalējiet vajadzīgo moduli”, “norādiet tā pareizo ceļu”, “ierakstiet pareizo reģistru metodē “require ()” un arī “ievadiet pareizo faila paplašinājumu”. Turklāt Node.js projektā var arī atrisināt moduli “instalēt lokāli”. Ja konkrētā kļūda joprojām pastāv, noņemiet mapi “node_modules”, failu “package-lock.json” un pēc tam vēlreiz instalējiet vajadzīgo moduli, izmantojot “npm/yarn”. Šajā ziņojumā ir apspriesti visi iespējamie iemesli, kā arī to risinājums, lai atrisinātu kļūdu “Nevar atrast moduli”, izmantojot Node.js.