Jak rozwiązać błąd „Nie można znaleźć modułu” przy użyciu Node.js?

Jak Rozwiazac Blad Nie Mozna Znalezc Modulu Przy Uzyciu Node Js



Podobnie jak inne języki programowania, Node.js nie musi dzielić kodu źródłowego aplikacji na małe kawałki. Zapisuje cały kod źródłowy do pliku „.js”, a interpreter nie sprawia żadnych problemów. Jednak przy tworzeniu bardzo złożonej aplikacji Node.js zaleca się podzielenie kodu źródłowego na mniejsze moduły, a następnie połączenie ich w spójną aplikację.

Szybki zarys

Co to jest moduł w Node.js?

W Node.js „ moduł ” odpowiada bibliotece, która buduje połączenie z aplikacją w oparciu o jej kontekst. Umożliwia programistom ponowne wykorzystanie enkapsulowanego kodu, gdy tylko jest to potrzebne. Jest on podzielony na trzy główne kategorie: moduły „wbudowane”, „lokalne” i „zewnętrzne”. Moduły te zawierają ponadto szeroką gamę metod i właściwości, które wykonują operacje określone zgodnie z ich funkcjonalnościami.







Jak rozwiązać błąd „Nie można znaleźć modułu” przy użyciu Node.js?

W tej sekcji wymieniono wszystkie możliwe przyczyny powodujące błąd „Nie można znaleźć modułu”, a także przedstawiono praktyczne rozwiązania tego problemu:



Powód 1: Wymagany moduł nie został zainstalowany

Najczęstszą przyczyną „ Nie można znaleźć modułu ” Błąd polega na tym, że wymagane „ moduł innej firmy nie jest zainstalowany ” w bieżącym projekcie Node.js. Załóżmy, że importujemy moduł „mysql” innej firmy do aplikacji Node.js w następujący sposób:



konst mysql = wymagać ( „mysql” ) ;

W powyższym poleceniu „ wymagać() ” zawiera moduł „mysql” do bieżącej aplikacji node.js.





Uruchom plik „.js”:

indeks węzła. js

Poniższe dane wyjściowe generują omawiany błąd, ponieważ moduł „mysql” nie jest zainstalowany w bieżącym projekcie Node.js:



Rozwiązanie: Zainstaluj wymagany moduł

Rozwiązaniem omówionego powyżej błędu jest prawidłowe zainstalowanie wymaganego modułu za pomocą „ npm / przędza „menedżer pakietów”. W tym scenariuszu wymagany moduł „mysql” jest instalowany za pomocą polecenia instalacyjnego „npm”:

npm zainstaluj mysql

Dane wyjściowe pokazują pomyślną instalację modułu „mysql” w bieżącym projekcie Node.js:

Teraz ponownie wykonaj plik „.js”:

indeks węzła. js

Można przeanalizować, że powyższe polecenie zostało wykonane pomyślnie, bez generowania błędu „Nie można znaleźć modułu”:

Powód 2: Nieprawidłowa ścieżka modułu

Innym powodem „ Nie można znaleźć modułu „błąd” to „ niepoprawna ścieżka modułu ”. Zwykle dzieje się tak, gdy użytkownik importuje moduł lokalny poprzez jego ścieżkę względną. Załóżmy, że użytkownik tworzy niestandardowy moduł w określonym folderze i importuje go do aplikacji Node.js. Zanim to zrobisz, upewnij się, że podana ścieżka jest poprawna, w przeciwnym razie wystąpi omawiany błąd.

Na przykład moduł lokalny/zdefiniowany przez użytkownika o nazwie „ mójModuł ” znajduje się w folderze „./custom-modules”:

Użytkownik importuje wyróżniony powyżej „myModule” do bieżącej aplikacji Node.js poprzez jego ścieżkę względną:

konst Języki = wymagać ( „./mójModuł” ) ;

Uruchom plik „.js”:

indeks węzła. js

Można zauważyć, że z powodu nieprawidłowej ścieżki „myModule” generowany jest błąd „Nie można znaleźć modułu”:

Rozwiązanie: Określ poprawną ścieżkę modułu

Rozwiązaniem omówionego powyżej błędu jest podanie poprawnej lub dokładnej ścieżki modułu, w którym się on znajduje. Tutaj przekazaliśmy poprawną ścieżkę „myModule”, aby rozwiązać błąd „Nie można znaleźć modułu”:

konst Języki = wymagać ( „./moduły-niestandardowe/myModule” ) ;

Zainicjuj plik „.js”:

indeks węzła. js

Można zauważyć, że poniższe dane wyjściowe nie pokazują napotkanego błędu, ponieważ określona ścieżka importowanego modułu została poprawiona:

Powód 3: Nieprawidłowa nazwa modułu (wielkość liter ma znaczenie)

Moduły są „ wielkość liter ma znaczenie ” w systemach Linux i macOS, na przykład jeśli nazwa modułu jest zainstalowana wielkimi literami, a użytkownik importuje ją małymi literami, wówczas „ Nie można znaleźć modułu ” zostanie wygenerowany błąd. Dzieje się tak, ponieważ istnieje niezgodność między rzeczywistą nazwą modułu a instrukcją importu.

Tutaj zainstalowany moduł „csvtojson” jest importowany „wielkimi literami” do aplikacji Node.js:

konst csvtojson = wymagać ( „CSVTOJSON” ) ;

Uruchom plik „.js”:

indeks węzła. js

Dane wyjściowe generują błąd „Nie można znaleźć modułu” z powodu nieprawidłowej nazwy modułu:

Rozwiązanie: Wpisz poprawną nazwę modułu

Rozwiązaniem powyższego błędu jest określenie prawidłowej wielkości liter (małej lub górnej) importowanego modułu podczas korzystania z „ wymagać() ' metoda. W tym scenariuszu moduł „csvtojson” jest określony w metodzie „require()” we właściwym przypadku:

konst csvtojson = wymagać ( 'csvtojson' ) ;

Uruchom ponownie plik „.js”:

indeks węzła. js

Teraz powyższe polecenie nie wygenerowało błędu „Nie można znaleźć modułu”, ponieważ wielkość zaimportowanego pakietu jest taka sama, jak jego rzeczywista nazwa:

Powód 4: Nieprawidłowe rozszerzenie pliku

Nie można znaleźć modułu ” błąd może również wystąpić z powodu „ nieprawidłowe rozszerzenie pliku ”. Podobnie jak w przypadku nieprawidłowej ścieżki pliku ma to miejsce w przypadku modułów lokalnych. Przykładowo, moduł lokalny tworzony jest w pliku „.json” i określany w aplikacji Node.js z rozszerzeniem „.js”, wówczas generowany jest powyższy konkretny błąd:

W tym scenariuszu „ myModule.js ” pokazany w przyczynie „Nieprawidłowa ścieżka modułu” jest traktowany jako przykładowy plik. Dostęp do niego można uzyskać w bieżącej aplikacji Node.js, określając jego rozszerzenie „.json” w następujący sposób:

konst Języki = wymagać ( „./custom-modules/myModule.json” ) ;

Uruchom plik „.js”:

indeks węzła. js

Dane wyjściowe generują błąd „Nie można znaleźć modułu” z powodu nieprawidłowego rozszerzenia pliku „myModule”:

Rozwiązanie: wpisz prawidłowe rozszerzenie pliku

Rozwiązaniem omawianego błędu jest wpisanie prawidłowego rozszerzenia pliku, w którym tworzony jest moduł lokalny. Na przykład określiliśmy prawidłowe rozszerzenie pliku „myModule.js”, aby rozwiązać błąd „Nie można znaleźć modułu”:

konst Języki = wymagać ( „./custom-modules/myModule.js” ) ;

Uruchom plik „.js”:

indeks węzła. js

Teraz powyższe polecenie zostało pomyślnie wykonane bez wyświetlania błędu „Nie można znaleźć modułu”:

Powód 5: Globalna instalacja modułu

Moduły węzła można instalować lokalnie (dla konkretnego projektu) lub globalnie (dla wszystkich projektów). W Linuksie , Jeśli wymagany moduł jest zainstalowany globalnie w systemie operacyjnym i dostęp do niego jest możliwy w konkretnym projekcie bez instalacji lokalnej, wówczas pojawi się „ Nie można znaleźć modułu ” generowany jest błąd.

Na przykład „ mongodb ” jest instalowany globalnie w systemie operacyjnym Linux za pośrednictwem „ sudo npm install -g mongodb ” i jest dostępny lokalnie w konkretnym projekcie węzła:

konst mongodb = wymagać ( „mongodb” )

Uruchom plik „.js”:

indeks węzła. js

Dane wyjściowe generują omawiany błąd, ponieważ „mongodb” nie jest zainstalowany lokalnie w bieżącym projekcie Node:

Rozwiązanie: Zainstaluj moduł lokalnie

Rozwiązaniem napotkanego błędu jest lokalna instalacja modułu dla konkretnego projektu Node.js w systemie operacyjnym opartym na systemie Linux.

Tutaj ' mongodb ” instaluje się lokalnie w bieżącym projekcie za pomocą polecenia instalacyjnego „npm”:

npm zainstaluj mongodb

Po zakończeniu lokalnej instalacji „mongodb” zaimportuj go do pliku „.js” i wykonaj:

indeks węzła. js

Można zauważyć, że błąd „Nie można znaleźć modułu” został rozwiązany poprzez lokalną instalację modułu „mongodb” dla bieżącego projektu Node.js:

W systemie Windows globalna i lokalna instalacja modułu nie generuje błędu „Nie można znaleźć modułu”.

Powód 6: Brak pliku wpisu

Nie można znaleźć modułu ” może również zostać wygenerowany z powodu braku głównego pliku wpisu w „package.json” modułu. Głównym plikiem wejściowym każdego modułu jest domyślnie plik „index.js”.

Załóżmy, że jeśli użytkownik usunie go niechcący, zostanie wygenerowany powyższy błąd. Dzieje się tak, ponieważ podczas importowania określonego modułu „ wymagać() ” nawiguje do folderu tego modułu i szuka punktu wejścia, jeżeli go nie ma to nie może zaimportować tego modułu do aplikacji Node.js.

Plik wejściowy „index.js” wymaganego modułu znajduje się w jego strukturze folderów. Poniższy fragment przedstawia plik wejściowy modułu „mysql”:

Teraz powyżej zaznaczony plik „index.js” został usunięty z folderu „mysql”, a następnie zaimportowany moduł „mysql” do aplikacji Node.js:

konst mysql = wymagać ( „mysql” )

Uruchom plik „.js”:

indeks węzła. js

W tym przypadku dane wyjściowe generują błąd „Nie można znaleźć modułu” z powodu braku pliku wejściowego modułu „mysql”:

Rozwiązanie: Zainstaluj ponownie wymagany moduł

Rozwiązaniem powyższego błędu jest usunięcie „ moduły_węzłów ” i ponownie zainstaluj wymagany moduł. Tutaj moduł „mysql” jest instalowany ponownie po usunięciu katalogu „node_modules”:

npm zainstaluj mysql

Po udanej instalacji „mysql”, nowy „ moduły_węzłów ” generowany jest automatycznie katalog zawierający strukturę folderów modułu „mysql”, w którym znajduje się „index.js”:

Teraz ponownie uruchom plik „.js”:

indeks węzła. js

W tym przypadku dane wyjściowe nie generują żadnego błędu „Nie można znaleźć modułu” ze względu na istnienie pliku wejściowego o nazwie „index.js” modułu „mysql”:

Co zrobić, jeśli błąd „Nie można znaleźć modułu” nadal występuje?

Jeśli „ Nie można znaleźć modułu ”błąd nadal występuje po rozwiązaniu go za pomocą dowolnego z powyższych rozwiązań, a następnie usuń„ moduły_węzłów ' teczka. Folder „node_modules” jest generowany automatycznie po zainstalowaniu modułu innej firmy. Zawiera wszystkie pakiety stron trzecich, od których zależy projekt Node.js.

Co więcej, „ pakiet-lock.json ” jest również generowany automatycznie, gdy pakiet jest instalowany z „npm”. Prowadzi rejestr zależności i podzależności, od których zależy pakiet, wraz z ich wersjami. Jeśli pakiet jest zainstalowany z „przędzą”, wówczas nazwa pliku to „ przędza.zamek ”.

Rozwiązanie: Usuń folder „node_modules” i plik „package-lock.json”.

Rozwiązaniem napotkanego błędu jest usunięcie folderu „node_modules” i pliku „package-lock.json/yarn.lock” i ponowne zainstalowanie wymaganego pakietu.

W Linuksie , określony powyżej folder i pliki można usunąć za pomocą poniższego „ rm (usuń)” polecenie:

rm - pakiet rf node_modules - zamek. json //Usuń folder i plik

ls // Wyświetl plik i katalogi

W powyższym poleceniu „ -R ” flaga usuwa określony folder „ rekurencyjnie ” łącznie ze wszystkimi jego podkatalogami oraz „ F ” flaga każe interpreterowi wykonać to zadanie „ forsownie ”:

Dane wyjściowe pokazują, że folder „node_modules” i plik „package-lock.json/yarn.lock” zostały całkowicie usunięte z bieżącego projektu Node.js:

W Windowsie , użytkownik może usunąć folder „node_modules” i plik „package-lock.json/yarn.lock”, po prostu naciskając przycisk „ usuwać ” lub korzystając z opcji „usuń” z menu rozwijanego.

Chodzi o rozwiązanie błędu „Nie można znaleźć modułu” w Node.js.

Wniosek

Aby rozwiązać problem „ Nie można znaleźć modułu ” błąd, „zainstaluj wymagany moduł”, „podaj jego poprawną ścieżkę”, „wpisz poprawną wielkość liter w metodzie „require()”, a także „wpisz prawidłowe rozszerzenie pliku”. Co więcej, można również rozwiązać problem „lokalnej instalacji modułu” w projekcie Node.js. Jeśli konkretny błąd będzie się powtarzał, usuń folder „node_modules”, plik „package-lock.json”, a następnie ponownie zainstaluj wymagany moduł poprzez „npm/yarn”. W tym poście omówiono wszystkie możliwe przyczyny wraz z rozwiązaniem problemu błędu „Nie można znaleźć modułu” przy użyciu Node.js.