Kako riješiti pogrešku 'Ne mogu pronaći modul' koristeći Node.js?

Kako Rijesiti Pogresku Ne Mogu Pronaci Modul Koristeci Node Js



Kao i drugi programski jezici, Node.js ne treba rastaviti izvorni kod aplikacije na male dijelove. Zapisuje sav izvorni kod u datoteku '.js' i tumač ne uzrokuje probleme. Međutim, tijekom izrade vrlo složene Node.js aplikacije preporučuje se podijeliti izvorni kod na manje module i zatim ih kombinirati u kohezivnu aplikaciju.

Brzi pregled

Što je modul u Node.js?

U Node.js, ' modul ” odgovara biblioteci koja gradi vezu s aplikacijom na temelju njenog konteksta. Programerima omogućuje ponovno korištenje enkapsuliranog koda kad god je to potrebno. Kategoriziran je u tri glavne kategorije: 'ugrađeni', 'lokalni' i moduli 'treće strane'. Ovi moduli nadalje sadrže širok raspon metoda i svojstava koja izvode operacije određene prema njihovim funkcionalnostima.







Kako riješiti pogrešku 'Ne mogu pronaći modul' koristeći Node.js?

Ovaj odjeljak navodi sve moguće razloge koji generiraju pogrešku 'Modul se ne može pronaći' i također pruža izvediva rješenja za njezino rješavanje:



Razlog 1: Potreban modul nije instaliran

Najčešći razlog za “ Ne mogu pronaći modul ' Pogreška je u tome što je potrebno ' modul treće strane nije instaliran ” u trenutnom projektu Node.js. Pretpostavimo da uvozimo modul “mysql” treće strane u aplikaciju Node.js na ovaj način:



konst mysql = zahtijevati ( 'mysql' ) ;

U gornjoj naredbi, ' zahtijevati () ” uključuje modul “mysql” u trenutnu aplikaciju node.js.





Izvršite datoteku “.js”:

indeks čvora. js

Donji izlaz generira pogrešku o kojoj se govori jer modul 'mysql' nije instaliran u trenutnom projektu Node.js:



Rješenje: Instalirajte potrebni modul

Rješenje za gore spomenutu pogrešku je ispravno instaliranje potrebnog modula uz pomoć ' npm / pređa ” upravitelj paketa. Za ovaj scenarij, potrebni “mysql” modul instaliran je s instalacijskom naredbom “npm”:

npm instalirajte mysql

Izlaz pokazuje uspješnu instalaciju modula “mysql” u trenutnom projektu Node.js:

Sada ponovno izvršite datoteku “.js”:

indeks čvora. js

Može se analizirati da je gornja naredba uspješno izvršena bez generiranja pogreške 'Ne mogu pronaći modul':

Razlog 2: Netočna staza modula

Još jedan razlog za ' Ne mogu pronaći modul ' pogreška je ' neispravan put modula ”. To se obično događa kada korisnik uvozi lokalni modul kroz njegov relativni put. Pretpostavimo da korisnik kreira prilagođeni modul u određenu mapu i uveze ga u aplikaciju Node.js. Prije nego što to učinite, provjerite je li navedeni put ispravan jer će se u protivnom pojaviti pogreška o kojoj se govori.

Na primjer, lokalni/korisnički definirani modul pod nazivom ' mojModul ” nalazi se u mapi „./custom-modules”:

Korisnik uvozi gore istaknuti 'myModule' u trenutnu aplikaciju Node.js kroz njen relativni put:

konst Jezici = zahtijevati ( './mojModul' ) ;

Pokrenite datoteku '.js':

indeks čvora. js

Može se vidjeti da se zbog netočne putanje 'myModule' generira pogreška 'Cannot find module':

Rješenje: Navedite ispravnu putanju modula

Rješenje za gore spomenutu pogrešku je navesti točnu ili točnu putanju modula na kojem se nalazi. Ovdje smo proslijedili ispravnu putanju 'myModule' za rješavanje pogreške 'Cannot find module':

konst Jezici = zahtijevati ( './custom-modules/myModule' ) ;

Pokrenite datoteku '.js':

indeks čvora. js

Može se uočiti da donji izlaz ne prikazuje uočenu pogrešku jer je navedena staza uvezenog modula ispravljena:

Razlog 3: Netočan naziv modula (razlikuje velika i mala slova)

Moduli su ' osjetljivo na velika i mala slova ' u Linuxu i macOS-u, primjerice ako je naziv modula instaliran velikim slovima, a korisnik ga uvozi malim slovima, a zatim ' Ne mogu pronaći modul ” će se generirati pogreška. To je zato što postoji nepodudaranje između stvarnog naziva modula i izjave uvoza.

Ovdje se instalirani modul 'csvtojson' uvozi 'velikim slovima' u aplikaciju Node.js:

konst csvtojson = zahtijevati ( 'CSVTOJSON' ) ;

Izvršite datoteku “.js”:

indeks čvora. js

Izlaz generira pogrešku 'Ne mogu pronaći modul' zbog netočnog naziva modula:

Rješenje: Upišite točan naziv modula

Rješenje za gore navedenu pogrešku je navesti ispravna slova (mala ili velika) uvezenog modula dok koristite ' zahtijevati () ” metoda. U ovom scenariju, modul “csvtojson” naveden je u metodi “require()” u ispravnom slučaju:

konst csvtojson = zahtijevati ( 'csvtojson' ) ;

Ponovno pokrenite datoteku “.js”:

indeks čvora. js

Sada, gornja naredba nije generirala pogrešku 'Modul se ne može pronaći' jer je uvezeni paket male veličine isti kao i njegov stvarni naziv:

Razlog 4: Neispravna ekstenzija datoteke

' Ne mogu pronaći modul ' također se može pojaviti zbog ' neispravan nastavak datoteke ”. Slično netočnom putu datoteke događa se u slučaju lokalnih modula. Na primjer, lokalni modul je kreiran u datoteci '.json' i naveden je u aplikaciji Node.js s ekstenzijom '.js', tada se generira gore navedena pogreška:

U ovom scenariju, ' mojModul.js ” prikazan u razlogu „Netočna staza modula” uzet je kao ogledna datoteka. Pristupa mu se u trenutnoj aplikaciji Node.js navođenjem njegove ekstenzije '.json' ovako:

konst Jezici = zahtijevati ( './custom-modules/myModule.json' ) ;

Izvršite datoteku “.js”:

indeks čvora. js

Izlaz generira pogrešku 'Modul se ne može pronaći' zbog neispravne ekstenzije datoteke 'myModule':

Rješenje: Upišite ispravan nastavak datoteke

Rješenje navedene pogreške je upisivanje ispravne ekstenzije datoteke u kojoj je kreiran lokalni modul. Na primjer, naveli smo ispravnu ekstenziju datoteke 'myModule.js' da bismo riješili pogrešku 'Ne mogu pronaći modul':

konst Jezici = zahtijevati ( './custom-modules/myModule.js' ) ;

Pokrenite datoteku '.js':

indeks čvora. js

Sada je gornja naredba uspješno izvršena bez prikazivanja pogreške 'Ne mogu pronaći modul':

Razlog 5: Globalna instalacija modula

Moduli čvora mogu se instalirati lokalno (za određeni projekt) ili globalno (za sve projekte). U Linuxu , Ako je traženi modul instaliran globalno u operacijskom sustavu i pristupa mu se u određenom projektu bez lokalne instalacije, onda se ' Ne mogu pronaći modul ” generira se pogreška.

Na primjer, ' mongodb ” modul se globalno instalira u operativni sustav Linux putem “ sudo npm install -g mongodb ” i pristupa joj se lokalno u projektu specifičnog čvora:

konst mongodb = zahtijevati ( 'mongodb' )

Pokrenite datoteku '.js':

indeks čvora. js

Izlaz generira spomenutu pogrešku jer 'mongodb' nije instaliran lokalno u trenutnom Node projektu:

Rješenje: Instalirajte modul lokalno

Rješenje za nastalu pogrešku je lokalna instalacija modula za određeni Node.js projekt na operativnom sustavu temeljenom na Linuxu.

Ovdje, ' mongodb ” modul se instalira lokalno u trenutnom projektu uz pomoć instalacijske naredbe “npm”:

npm instalirajte mongodb

Kada je lokalna instalacija 'mongodb' dovršena, uvezite ga u datoteku '.js' i pokrenite:

indeks čvora. js

Može se vidjeti da je pogreška 'Cannot find module' riješena lokalnom instalacijom modula 'mongodb' za trenutni Node.js projekt:

U sustavu Windows, globalna i lokalna instalacija modula ne generira pogrešku 'Ne mogu pronaći modul'.

Razlog 6: Nedostaje ulazna datoteka

' Ne mogu pronaći modul ” također se može generirati zbog nedostatka glavne ulazne datoteke u “package.json” modula. Glavna ulazna datoteka svakog modula je datoteka 'index.js' prema zadanim postavkama.

Pretpostavimo, ako ga korisnik nenamjerno ukloni, tada će se generirati gore navedena pogreška. To je zato što prilikom uvoza navedenog modula ' zahtijevati () ” metoda navigira do mape tog modula i traži ulaznu točku, ako ona ne postoji tada ne može uvesti taj modul u aplikaciju Node.js.

Ulazna datoteka 'index.js' potrebnog modula nalazi se unutar strukture mape. Donji isječak prikazuje ulaznu datoteku modula 'mysql':

Sada se gore istaknuta datoteka “index.js” uklanja iz mape “mysql”, a zatim se modul “mysql” uvozi u aplikaciju Node.js:

konst mysql = zahtijevati ( 'mysql' )

Izvršite datoteku “.js”:

indeks čvora. js

Ovdje izlaz generira pogrešku 'Ne mogu pronaći modul' jer nedostaje ulazna datoteka modula 'mysql':

Rješenje: Ponovno instalirajte potreban modul

Rješenje gore navedene pogreške je brisanje ' čvor_moduli ” i ponovno instalirajte potrebni modul. Ovdje se modul “mysql” ponovno instalira nakon brisanja direktorija “node_modules”:

npm instalirajte mysql

Nakon uspješne instalacije 'mysql', novi ' čvor_moduli ” automatski se generira direktorij koji sadrži strukturu mapa modula „mysql” u kojem je prisutan „index.js”:

Sada ponovno pokrenite datoteku “.js”:

indeks čvora. js

Ovdje izlaz ne generira nikakvu pogrešku 'Ne mogu pronaći modul' zbog postojanja ulazne datoteke pod nazivom 'index.js' modula 'mysql':

Što učiniti ako se pogreška 'Modul ne može pronaći' i dalje postoji?

Ako ' Ne mogu pronaći modul ' pogreška i dalje postoji nakon što je riješite bilo kojim od gore navedenih rješenja, a zatim izbrišite ' čvor_moduli ” mapa. Mapa “node_modules” automatski se generira kada se instalira modul treće strane. Sadrži sve pakete trećih strana o kojima ovisi projekt Node.js.

Štoviše, ' paket-lock.json ” također se automatski generira kada se paket instalira s „npm”. Čuva evidenciju ovisnosti kao i podovisnosti o kojima paket ovisi zajedno s njihovim verzijama. Ako je paket instaliran s “yarn” onda je ovaj naziv datoteke “ pređa.brava ”.

Rješenje: Uklonite mapu “node_modules” i datoteku “package-lock.json”.

Rješenje nastale pogreške je brisanje mape “node_modules” i datoteke “package-lock.json/yarn.lock” i ponovno instaliranje potrebnog paketa.

U Linuxu , gore navedena mapa i datoteke mogu se izbrisati uz pomoć dolje navedenog ' rm (ukloni)” naredba:

rm - paket rf node_modules - zaključati. json //Brisanje mape i datoteke

ls // Prikaz datoteke i direktorija

U gornjoj naredbi ' -r ” zastavica briše navedenu mapu “ rekurzivno ' uključujući sve njegove poddirektorije i ' f ” zastavica govori tumaču da izvrši ovaj zadatak “ snažno ”:

Izlaz pokazuje da su mapa 'node_modules' i datoteka 'package-lock.json/yarn.lock' potpuno uklonjene iz trenutnog Node.js projekta:

U sustavu Windows , korisnik može izbrisati mapu 'node_modules' i datoteku 'package-lock.json/yarn.lock' jednostavnim pritiskom na ' izbrisati ” ili pomoću opcije “izbriši” iz padajućeg izbornika.

To je sve o rješavanju pogreške 'Ne mogu pronaći modul' u Node.js.

Zaključak

Za rješavanje ' Ne mogu pronaći modul ” pogreška, “instalirajte traženi modul”, “navedite njegovu ispravnu stazu”, “upišite ispravna velika i mala slova u metodu “require()” i također “upišite ispravnu ekstenziju datoteke”. Štoviše, također se može riješiti 'lokalno instaliranje modula' u projektu Node.js. Ako se određena pogreška nastavi, uklonite mapu 'node_modules', datoteku 'package-lock.json', a zatim ponovno instalirajte potrebni modul putem 'npm/yarn'. Ovaj post raspravlja o svim mogućim razlozima zajedno s njihovim rješenjem za rješavanje pogreške 'Ne mogu pronaći modul' pomoću Node.js.