Szybki zarys
- Co to jest „moduł” w Node.js?
- Jak rozwiązać błąd „Nie można znaleźć modułu” przy użyciu Node.js?
- Wniosek
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: Moduł nie jest zainstalowany
- Rozwiązanie: Zainstaluj wymagany moduł
- Powód 2: Nieprawidłowa ścieżka modułu
- Rozwiązanie: Określ poprawną ścieżkę modułu
- Powód 3: Nieprawidłowa nazwa modułu (wielkość liter ma znaczenie)
- Rozwiązanie: Wpisz poprawną nazwę modułu
- Powód 4: Nieprawidłowe rozszerzenie pliku
- Rozwiązanie: wpisz prawidłowe rozszerzenie pliku
- Powód 5: Globalna instalacja modułu
- Rozwiązanie: Zainstaluj moduł lokalnie
- Powód 6: Brak pliku wpisu
- Rozwiązanie: Zainstaluj ponownie wymagany moduł
- Co zrobić, jeśli błąd „Nie można znaleźć modułu” nadal występuje?
- Rozwiązanie: Usuń folder „node_modules” i plik „package-lock.json”.
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. jsPoniż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 mysqlDane wyjściowe pokazują pomyślną instalację modułu „mysql” w bieżącym projekcie Node.js:
Teraz ponownie wykonaj plik „.js”:
indeks węzła. jsMoż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. jsMoż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. jsMoż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. jsDane 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. jsTeraz 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. jsDane 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. jsTeraz 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. jsDane 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. jsMoż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. jsW 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. jsW 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 plikls // 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.