Jak vyřešit chybu „Nelze najít modul“ pomocí Node.js?

Jak Vyresit Chybu Nelze Najit Modul Pomoci Node Js



Stejně jako ostatní programovací jazyky, ani Node.js nepotřebuje rozdělovat zdrojový kód aplikace na malé kousky. Zapisuje veškerý zdrojový kód do souboru „.js“ a interpret nezpůsobuje žádné problémy. Při vytváření velmi složité aplikace Node.js se však doporučuje rozdělit zdrojový kód na menší moduly a ty pak spojit do soudržné aplikace.

Rychlý přehled

Co je modul v Node.js?

V Node.js je „ modul ” odpovídá knihovně, která vytváří spojení s aplikací na základě jejího kontextu. Umožňuje vývojářům znovu použít zapouzdřený kód, kdykoli je to potřeba. Je rozdělen do tří hlavních kategorií: moduly „vestavěné“, „místní“ a „moduly třetích stran“. Tyto moduly dále obsahují širokou škálu metod a vlastností, které provádějí operace specifikované podle jejich funkcionality.







Jak vyřešit chybu „Nelze najít modul“ pomocí Node.js?

Tato část uvádí všechny možné důvody, které generují chybu „Nelze najít modul“ a také poskytuje funkční řešení, jak ji vyřešit:



Důvod 1: Požadovaný modul není nainstalován

Nejčastějším důvodem pro „ Nelze najít modul 'Chyba je, že požadovaný' modul třetí strany není nainstalován ” v aktuálním projektu Node.js. Předpokládejme, že modul „mysql“ třetí strany importujeme do aplikace Node.js tímto způsobem:



konst mysql = vyžadovat ( 'mysql' ) ;

Ve výše uvedeném příkazu „ vyžadovat() ” metoda zahrnuje modul “mysql” do aktuální aplikace node.js.





Spusťte soubor „.js“:

index uzlu. js

Níže uvedený výstup generuje diskutovanou chybu, protože modul „mysql“ není nainstalován v aktuálním projektu Node.js:



Řešení: Nainstalujte požadovaný modul

Řešením výše diskutované chyby je správná instalace požadovaného modulu pomocí „ npm / příze “ správce balíčků. Pro tento scénář se požadovaný modul „mysql“ nainstaluje pomocí instalačního příkazu „npm“:

npm nainstalovat mysql

Výstup ukazuje úspěšnou instalaci modulu „mysql“ v aktuálním projektu Node.js:

Nyní spusťte soubor „.js“ znovu:

index uzlu. js

Lze analyzovat, že výše uvedený příkaz byl úspěšně proveden bez generování chyby „Nelze najít modul“:

Důvod 2: Nesprávná cesta modulu

Dalším důvodem pro „ Nelze najít modul 'chyba je' nesprávná cesta modulu “. Obvykle se to stane, když uživatel importuje lokální modul přes jeho relativní cestu. Předpokládejme, že uživatel vytvoří vlastní modul do konkrétní složky a importuje jej do aplikace Node.js. Než to uděláte, ujistěte se, že zadaná cesta je správná, jinak dojde k diskutované chybě.

Například místní/uživatelsky definovaný modul s názvem „ myModule “ se nachází ve složce „./custom-modules“:

Uživatel importuje výše zvýrazněný „myModule“ do aktuální aplikace Node.js prostřednictvím jeho relativní cesty:

konst jazyky = vyžadovat ( './myModule' ) ;

Spusťte soubor „.js“:

index uzlu. js

Je vidět, že kvůli nesprávné cestě k „myModule“ se generuje chyba „Nelze najít modul“:

Řešení: Zadejte správnou cestu modulu

Řešením výše diskutované chyby je zadání správné či přesné cesty modulu, kde se nachází. Zde jsme předali správnou cestu „myModule“, abychom vyřešili chybu „Cannot find module“:

konst jazyky = vyžadovat ( './custom-modules/myModule' ) ;

Spusťte soubor „.js“:

index uzlu. js

Lze pozorovat, že níže uvedený výstup nezobrazuje zjištěnou chybu, protože zadaná cesta importovaného modulu byla opravena:

Důvod 3: Nesprávný název modulu (rozlišují se malá a velká písmena)

Moduly jsou „ citlivý na velká písmena “ v systémech Linux a macOS, například pokud je název modulu nainstalován velkými písmeny a uživatel jej importuje malými písmeny, pak „ Nelze najít modul ” bude vygenerována chyba. Důvodem je neshoda mezi skutečným názvem modulu a příkazem importu.

Zde je nainstalovaný modul „csvtojson“ importován „velkými písmeny“ do aplikace Node.js:

konst csvtojson = vyžadovat ( 'CSVTOJSON' ) ;

Spusťte soubor „.js“:

index uzlu. js

Výstup generuje chybu „Nelze najít modul“ kvůli nesprávnému názvu modulu:

Řešení: Zadejte správný název modulu

Řešením výše uvedené chyby je specifikovat správný případ (dolní nebo horní) importovaného modulu při použití „ vyžadovat() “ metoda. V tomto scénáři je modul „csvtojson“ specifikován v metodě „require()“ ve správném případě:

konst csvtojson = vyžadovat ( 'csvtojson' ) ;

Spusťte znovu soubor „.js“:

index uzlu. js

Nyní výše uvedený příkaz nevygeneroval chybu „Nelze najít modul“, protože případ importovaného balíčku je stejný jako jeho skutečný název:

Důvod 4: Nesprávná přípona souboru

' Nelze najít modul 'chyba může také nastat v důsledku ' nesprávná přípona souboru “. Podobně jako u nesprávné cesty k souboru se to stává v případě lokálních modulů. Například lokální modul je vytvořen do souboru „.json“ a je specifikován v aplikaci Node.js s příponou „.js“, pak se vygeneruje výše uvedená konkrétní chyba:

V tomto scénáři „ myModule.js ” zobrazený v důvodu “Incorrect Module Path” je brán jako ukázkový soubor. V aktuální aplikaci Node.js se k němu přistupuje zadáním jeho přípony „.json“ takto:

konst jazyky = vyžadovat ( './custom-modules/myModule.json' ) ;

Spusťte soubor „.js“:

index uzlu. js

Výstup generuje chybu „Cannot find module“ z důvodu nesprávné přípony souboru „myModule“:

Řešení: Zadejte Correct File Extension

Řešením diskutované chyby je zadání správné přípony souboru, ve kterém je vytvořen lokální modul. Například jsme specifikovali správnou příponu souboru „myModule.js“, abychom vyřešili chybu „Cannot find module“:

konst jazyky = vyžadovat ( './custom-modules/myModule.js' ) ;

Spusťte soubor „.js“:

index uzlu. js

Nyní byl výše uvedený příkaz úspěšně proveden bez zobrazení chyby „Nelze najít modul“:

Důvod 5: Globální instalace modulu

Moduly uzlů lze nainstalovat lokálně (pro konkrétní projekt) nebo globálně (pro všechny projekty). V Linuxu , Pokud je požadovaný modul nainstalován globálně v operačním systému a je k němu přístup v konkrétním projektu bez lokální instalace, pak „ Nelze najít modul ” je generována chyba.

Například „ mongodb “ modul je globálně instalován do operačního systému Linux prostřednictvím „ sudo npm install -g mongodb ” a je přístupný lokálně v projektu konkrétního uzlu:

konst mongodb = vyžadovat ( 'mongodb' )

Spusťte soubor „.js“:

index uzlu. js

Výstup generuje diskutovanou chybu, protože „mongodb“ není nainstalován lokálně v aktuálním projektu Node:

Řešení: Nainstalujte modul lokálně

Řešením zjištěné chyby je lokálně nainstalovat modul pro konkrétní projekt Node.js na operačním systému Linux.

Zde, „ mongodb ” modul je nainstalován lokálně v aktuálním projektu pomocí instalačního příkazu „npm“:

npm nainstalovat mongodb

Po dokončení místní instalace „mongodb“ jej naimportujte do souboru „.js“ a spusťte:

index uzlu. js

Je vidět, že chyba „Cannot find module“ byla vyřešena instalací modulu „mongodb“ lokálně pro aktuální projekt Node.js:

V systému Windows globální a místní instalace modulu negeneruje chybu „Nelze najít modul“.

Důvod 6: Chybějící vstupní soubor

' Nelze najít modul Chyba ” může být také vygenerována z důvodu chybějícího hlavního vstupního souboru v „package.json“ modulu. Hlavním vstupním souborem každého modulu je ve výchozím nastavení soubor „index.js“.

Předpokládejme, že pokud jej uživatel neúmyslně odstraní, bude generována výše uvedená chyba. Je to proto, že při importu zadaného modulu se „ vyžadovat() ” přejde do složky daného modulu a vyhledá vstupní bod, pokud neexistuje, nemůže tento modul importovat do aplikace Node.js.

Vstupní soubor „index.js“ požadovaného modulu se nachází ve struktuře jeho složek. Níže uvedený úryvek ukazuje vstupní soubor modulu „mysql“:

Nyní je výše zvýrazněný soubor „index.js“ odstraněn ze složky „mysql“ a poté je modul „mysql“ importován do aplikace Node.js:

konst mysql = vyžadovat ( 'mysql' )

Spusťte soubor „.js“:

index uzlu. js

Zde výstup generuje chybu „Nelze najít modul“ kvůli chybějícímu vstupnímu souboru modulu „mysql“:

Řešení: Znovu nainstalujte požadovaný modul

Řešením výše uvedené chyby je odstranění „ node_modules ” a znovu nainstalujte požadovaný modul. Zde se modul „mysql“ znovu nainstaluje po smazání adresáře „node_modules“:

npm nainstalovat mysql

Po úspěšné instalaci „mysql“ se objeví nový „ node_modules ” je automaticky vygenerován adresář obsahující strukturu složek modulu „mysql“, ve kterém je přítomen „index.js“:

Nyní znovu spusťte soubor „.js“:

index uzlu. js

Zde výstup negeneruje žádnou chybu „Cannot find module“ kvůli existenci vstupního souboru s názvem „index.js“ modulu „mysql“:

Co dělat, když chyba „Nelze najít modul“ stále přetrvává?

Pokud „ Nelze najít modul “ chyba přetrvává i po jejím vyřešení pomocí některého z výše uvedených řešení a poté odstraňte „ node_modules “. Složka „node_modules“ se automaticky vygeneruje při instalaci modulu třetí strany. Obsahuje všechny balíčky třetích stran, na kterých závisí projekt Node.js.

Navíc, „ package-lock.json ” se také automaticky vygeneruje, když je balíček nainstalován s „npm“. Uchovává záznamy závislostí a také dílčích závislostí, na kterých balíček závisí, spolu s jejich verzemi. Pokud je balíček nainstalován s „přízí“, pak je tento název souboru „ příze.zámek “.

Řešení: Odstraňte složku „node_modules“ a soubor „package-lock.json“.

Řešením zjištěné chyby je odstranit složku „node_modules“ a soubor „package-lock.json/yarn.lock“ a znovu nainstalovat požadovaný balíček.

V Linuxu , výše specifikovanou složku a soubory lze smazat pomocí níže uvedeného „ rm (odstranit)“ příkaz:

rm - balíček rf node_modules - zámek. json //Odstranit složku a soubor

ls // Zobrazení souborů a adresářů

Ve výše uvedeném příkazu „ -r 'příznak odstraní zadanou složku' rekurzivně “ včetně všech jeho podadresářů a „ F 'příznak říká tlumočníkovi, aby provedl tento úkol' energicky “:

Výstup ukazuje, že složka „node_modules“ a soubor „package-lock.json/yarn.lock“ byly zcela odstraněny z aktuálního projektu Node.js:

Ve Windows , uživatel může smazat složku „node_modules“ a soubor „package-lock.json/yarn.lock“ jednoduše stisknutím tlačítka „ vymazat ” nebo pomocí možnosti “smazat” z rozbalovací nabídky.

To je vše o vyřešení chyby „Nelze najít modul“ v Node.js.

Závěr

K vyřešení problému „ Nelze najít modul “, “nainstalujte požadovaný modul”, “uveďte jeho správnou cestu”, “zadejte správná velká a malá písmena v metodě “require()” a také “zadejte správnou příponu souboru”. Navíc lze také vyřešit „instalaci modulu lokálně“ v projektu Node.js. Pokud konkrétní chyba přetrvává, odstraňte složku „node_modules“, soubor „package-lock.json“ a poté znovu nainstalujte požadovaný modul pomocí „npm/yarn“. Tento příspěvek pojednává o všech možných důvodech spolu s jejich řešením k vyřešení chyby „Nelze najít modul“ pomocí Node.js.