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: Modul není nainstalován
- Řešení: Nainstalujte požadovaný modul
- Důvod 2: Nesprávná cesta modulu
- Řešení: Zadejte správnou cestu modulu
- Důvod 3: Nesprávný název modulu (rozlišují se malá a velká písmena)
- Řešení: Zadejte správný název modulu
- Důvod 4: Nesprávná přípona souboru
- Řešení: Zadejte Correct File Extension
- Důvod 5: Globální instalace modulu
- Řešení: Nainstalujte modul lokálně
- Důvod 6: Chybějící vstupní soubor
- Řešení: Znovu nainstalujte požadovaný modul
- Co dělat, když chyba „Nelze najít modul“ stále přetrvává?
- Řešení: Odstraňte složku „node_modules“ a soubor „package-lock.json“.
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. jsNíž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 mysqlVýstup ukazuje úspěšnou instalaci modulu „mysql“ v aktuálním projektu Node.js:
Nyní spusťte soubor „.js“ znovu:
index uzlu. jsLze 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. jsJe 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. jsLze 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. jsVý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. jsNyní 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. jsVý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. jsNyní 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. jsVý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. jsJe 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. jsZde 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. jsZde 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 souborls // 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.