Ako vyriešiť chybu „Nedá sa nájsť modul“ pomocou Node.js?

Ako Vyriesit Chybu Neda Sa Najst Modul Pomocou Node Js



Podobne ako iné programovacie jazyky, ani Node.js nepotrebuje rozdeľovať zdrojový kód aplikácie na malé kúsky. Celý zdrojový kód zapíše do súboru „.js“ a tlmočník nespôsobuje žiadne problémy. Pri vytváraní veľmi komplexnej aplikácie Node.js sa však odporúča rozdeliť zdrojový kód na menšie moduly a tie potom spojiť do súdržnej aplikácie.

Rýchly prehľad

Čo je modul v Node.js?

V Node.js je „ modul ” zodpovedá knižnici, ktorá vytvára spojenie s aplikáciou na základe jej kontextu. Umožňuje vývojárom opätovne použiť zapuzdrený kód, kedykoľvek je to potrebné. Je kategorizovaný do troch hlavných kategórií: „vstavané“, „lokálne“ a „tretej strany“ moduly. Tieto moduly ďalej obsahujú širokú škálu metód a vlastností, ktoré vykonávajú operácie špecifikované podľa ich funkcionalít.







Ako vyriešiť chybu „Nedá sa nájsť modul“ pomocou Node.js?

V tejto časti sú uvedené všetky možné dôvody, ktoré generujú chybu „Nedá sa nájsť modul“ a tiež poskytuje použiteľné riešenia na jej vyriešenie:



Dôvod 1: Požadovaný modul nie je nainštalovaný

Najčastejším dôvodom „ Nedá sa nájsť modul 'Chyba je, že požadované' modul tretej strany nie je nainštalovaný ” v aktuálnom projekte Node.js. Predpokladajme, že modul „mysql“ tretej strany importujeme do aplikácie Node.js týmto spôsobom:



konšt mysql = vyžadovať ( 'mysql' ) ;

Vo vyššie uvedenom príkaze „ vyžadovať() ” zahŕňa modul “mysql” do aktuálnej aplikácie node.js.





Spustite súbor „.js“:

index uzla. js

Nižšie uvedený výstup generuje diskutovanú chybu, pretože modul „mysql“ nie je nainštalovaný v aktuálnom projekte Node.js:



Riešenie: Nainštalujte požadovaný modul

Riešením vyššie diskutovanej chyby je správna inštalácia požadovaného modulu pomocou „ npm / priadza “správca balíkov. Pre tento scenár sa požadovaný modul „mysql“ nainštaluje pomocou inštalačného príkazu „npm“:

npm nainštalujte mysql

Výstup ukazuje úspešnú inštaláciu modulu „mysql“ v aktuálnom projekte Node.js:

Teraz znova spustite súbor „.js“:

index uzla. js

Dá sa analyzovať, že vyššie uvedený príkaz sa úspešne vykonal bez vygenerovania chyby „Nedá sa nájsť modul“:

Dôvod 2: Nesprávna cesta modulu

Ďalším dôvodom pre „ Nedá sa nájsť modul “chyba je “ nesprávna cesta modulu “. Zvyčajne sa to stane, keď používateľ importuje lokálny modul cez jeho relatívnu cestu. Predpokladajme, že používateľ vytvorí vlastný modul do konkrétneho priečinka a importuje ho do aplikácie Node.js. Predtým, ako to urobíte, skontrolujte, či je zadaná cesta správna, inak sa vyskytne diskutovaná chyba.

Napríklad lokálny/používateľom definovaný modul s názvom „ myModule “ sa nachádza v priečinku „./custom-modules“:

Používateľ importuje vyššie zvýraznený „myModule“ do aktuálnej aplikácie Node.js prostredníctvom jeho relatívnej cesty:

konšt jazykoch = vyžadovať ( './myModule' ) ;

Spustite súbor „.js“:

index uzla. js

Je vidieť, že v dôsledku nesprávnej cesty „myModule“ sa vygeneruje chyba „Nedá sa nájsť modul“:

Riešenie: Zadajte správnu cestu modulu

Riešením vyššie diskutovanej chyby je špecifikácia správnej alebo presnej cesty modulu, kde sa nachádza. Tu sme prešli správnou cestou „myModule“, aby sme vyriešili chybu „Nedá sa nájsť modul“:

konšt jazykoch = vyžadovať ( './custom-modules/myModule' ) ;

Spustite súbor „.js“:

index uzla. js

Je možné pozorovať, že nižšie uvedený výstup neukazuje zistenú chybu, pretože zadaná cesta importovaného modulu bola opravená:

Dôvod 3: Nesprávny názov modulu (rozlišujú sa malé a veľké písmená)

Moduly sú „ rozlišovať malé a veľké písmená “ v Linuxe a macOS, napríklad ak je názov modulu nainštalovaný veľkými písmenami a používateľ ho importuje malými písmenami, potom „ Nedá sa nájsť modul ” vygeneruje sa chyba. Dôvodom je nesúlad medzi skutočným názvom modulu a príkazom importu.

Tu sa nainštalovaný modul „csvtojson“ importuje „veľkými písmenami“ do aplikácie Node.js:

konšt csvtojson = vyžadovať ( 'CSVTOJSON' ) ;

Spustite súbor „.js“:

index uzla. js

Výstup generuje chybu „Nedá sa nájsť modul“ kvôli nesprávnemu názvu modulu:

Riešenie: Zadajte správny názov modulu

Riešením vyššie uvedenej chyby je špecifikovať správny prípad (dolný alebo horný) importovaného modulu pri použití „ vyžadovať() “. V tomto scenári je modul „csvtojson“ špecifikovaný v metóde „require()“ v správnom prípade:

konšt csvtojson = vyžadovať ( 'csvtojson' ) ;

Znova spustite súbor „.js“:

index uzla. js

Teraz vyššie uvedený príkaz nevygeneroval chybu „Nedá sa nájsť modul“, pretože prípad importovaného balíka je rovnaký ako jeho skutočný názov:

Dôvod 4: Nesprávna prípona súboru

' Nedá sa nájsť modul “chyba môže nastať aj v dôsledku “ nesprávna prípona súboru “. Podobne ako pri nesprávnej ceste k súboru sa to stáva v prípade lokálnych modulov. Napríklad lokálny modul sa vytvorí do súboru „.json“ a je špecifikovaný v aplikácii Node.js s príponou „.js“, potom sa vygeneruje konkrétna chyba uvedená vyššie:

V tomto scenári „ myModule.js ” zobrazený v dôvode „Nesprávna cesta modulu“ sa považuje za vzorový súbor. V aktuálnej aplikácii Node.js sa k nemu pristupuje zadaním jeho rozšírenia „.json“ takto:

konšt jazykoch = vyžadovať ( './custom-modules/myModule.json' ) ;

Spustite súbor „.js“:

index uzla. js

Výstup generuje chybu „Nedá sa nájsť modul“ z dôvodu nesprávnej prípony súboru „myModule“:

Riešenie: Napíšte Correct File Extension

Riešením diskutovanej chyby je napísanie správnej prípony súboru, v ktorej je vytvorený lokálny modul. Napríklad sme špecifikovali správnu príponu súboru „myModule.js“, aby sme vyriešili chybu „Nedá sa nájsť modul“:

konšt jazykoch = vyžadovať ( './custom-modules/myModule.js' ) ;

Spustite súbor „.js“:

index uzla. js

Teraz bol vyššie uvedený príkaz úspešne vykonaný bez zobrazenia chyby „Nedá sa nájsť modul“:

Dôvod 5: Globálna inštalácia modulu

Moduly uzlov je možné nainštalovať lokálne (pre konkrétny projekt) alebo globálne (pre všetky projekty). V Linuxe , Ak je požadovaný modul nainštalovaný globálne v operačnom systéme a je prístupný v konkrétnom projekte bez lokálnej inštalácie, potom „ Nedá sa nájsť modul “vygeneruje sa chyba.

Napríklad „ mongodb “ je globálne nainštalovaný do operačného systému Linux cez „ sudo npm install -g mongodb ” a je prístupný lokálne v konkrétnom projekte uzla:

konšt mongodb = vyžadovať ( 'mongodb' )

Spustite súbor „.js“:

index uzla. js

Výstup generuje diskutovanú chybu, pretože „mongodb“ nie je nainštalovaný lokálne v aktuálnom projekte Node:

Riešenie: Nainštalujte modul lokálne

Riešením vzniknutej chyby je lokálna inštalácia modulu pre konkrétny projekt Node.js v operačnom systéme založenom na Linuxe.

Tu je „ mongodb Modul je nainštalovaný lokálne v aktuálnom projekte pomocou inštalačného príkazu „npm“:

npm nainštalovať mongodb

Po dokončení lokálnej inštalácie „mongodb“ ho importujte do súboru „.js“ a spustite ho:

index uzla. js

Je vidieť, že chyba „Nedá sa nájsť modul“ bola vyriešená lokálnou inštaláciou modulu „mongodb“ pre aktuálny projekt Node.js:

V systéme Windows globálna a lokálna inštalácia modulu negeneruje chybu „Nedá sa nájsť modul“.

Dôvod 6: Chýbajúci vstupný súbor

' Nedá sa nájsť modul Chyba ” sa môže vygenerovať aj z dôvodu chýbajúceho súboru hlavného vstupu v súbore „package.json“ modulu. Hlavným vstupným súborom každého modulu je štandardne súbor „index.js“.

Predpokladajme, že ak ho používateľ neúmyselne odstráni, vygeneruje sa vyššie uvedená chyba. Je to preto, že pri importe špecifikovaného modulu sa „ vyžadovať() ” prejde do priečinka daného modulu a vyhľadá vstupný bod, ak neexistuje, nemôže tento modul importovať do aplikácie Node.js.

Vstupný súbor „index.js“ požadovaného modulu sa nachádza v jeho priečinkovej štruktúre. Nižšie uvedený úryvok zobrazuje vstupný súbor modulu „mysql“:

Teraz sa vyššie zvýraznený súbor „index.js“ odstráni z priečinka „mysql“ a potom sa modul „mysql“ importuje do aplikácie Node.js:

konšt mysql = vyžadovať ( 'mysql' )

Spustite súbor „.js“:

index uzla. js

Tu výstup generuje chybu „Nedá sa nájsť modul“, pretože chýba vstupný súbor modulu „mysql“:

Riešenie: Znova nainštalujte požadovaný modul

Riešením vyššie uvedenej chyby je vymazanie „ node_modules ” a znova nainštalujte požadovaný modul. Tu sa modul „mysql“ znova nainštaluje po odstránení adresára „node_modules“:

npm nainštalujte mysql

Po úspešnej inštalácii „mysql“ sa nový „ node_modules ” sa automaticky vygeneruje adresár obsahujúci štruktúru priečinkov modulu „mysql“, v ktorom sa nachádza „index.js“:

Teraz znova spustite súbor „.js“:

index uzla. js

Výstup tu negeneruje žiadnu chybu „Nedá sa nájsť modul“ kvôli existencii súboru s názvom „index.js“ modulu „mysql“:

Čo robiť, ak chyba „Nedá sa nájsť modul“ stále pretrváva?

Ak „ Nedá sa nájsť modul “ chyba pretrváva aj po vyriešení niektorého z vyššie uvedených riešení, potom odstráňte „ node_modules “. Priečinok „node_modules“ sa automaticky vygeneruje, keď je nainštalovaný modul tretej strany. Obsahuje všetky balíčky tretích strán, na ktorých závisí projekt Node.js.

Navyše, „ package-lock.json ” sa automaticky vygeneruje aj pri inštalácii balíka s “npm”. Uchováva záznamy o závislostiach, ako aj o podzávislostiach, na ktorých balík závisí, spolu s ich verziami. Ak je balík nainštalovaný s „priadzou“, tento názov súboru je „ priadza.zámok “.

Riešenie: Odstráňte priečinok „node_modules“ a súbor „package-lock.json“.

Riešením vzniknutej chyby je odstrániť priečinok „node_modules“ a súbor „package-lock.json/yarn.lock“ a znova nainštalovať požadovaný balík.

V Linuxe , vyššie uvedený priečinok a súbory je možné odstrániť pomocou nižšie uvedeného „ rm (odstrániť)“ príkaz:

rm - balík rf node_modules - zámok. json //Odstrániť priečinok a súbor

ls // Zobrazenie súboru a adresárov

Vo vyššie uvedenom príkaze „ -r 'príznak vymaže zadaný priečinok' rekurzívne “ vrátane všetkých jeho podadresárov a „ f 'príznak hovorí tlmočníkovi, aby vykonal túto úlohu' násilne “:

Výstup ukazuje, že priečinok „node_modules“ a súbor „package-lock.json/yarn.lock“ boli úplne odstránené z aktuálneho projektu Node.js:

V systéme Windows , používateľ môže odstrániť priečinok „node_modules“ a súbor „package-lock.json/yarn.lock“ jednoduchým stlačením tlačidla „ vymazať ” alebo pomocou možnosti “vymazať” z rozbaľovacej ponuky.

To je všetko o vyriešení chyby „Nedá sa nájsť modul“ v Node.js.

Záver

Na vyriešenie problému „ Nedá sa nájsť modul “, “nainštalujte požadovaný modul”, “špecifikujte jeho správnu cestu”, “napíšte správne veľké a malé písmená v metóde “require()” a tiež “napíšte správnu príponu súboru”. Okrem toho sa dá vyriešiť aj „inštalácia modulu lokálne“ v projekte Node.js. Ak konkrétna chyba pretrváva, odstráňte priečinok „node_modules“, súbor „package-lock.json“ a potom znova nainštalujte požadovaný modul cez „npm/yarn“. Tento príspevok diskutoval o všetkých možných dôvodoch spolu s ich riešením na vyriešenie chyby „Nedá sa nájsť modul“ pomocou Node.js.