Kako odpraviti napako »Modula ni mogoče najti« z uporabo Node.js?

Kako Odpraviti Napako Modula Ni Mogoce Najti Z Uporabo Node Js



Tako kot drugi programski jeziki Node.js ni treba razbiti izvorne kode aplikacije na majhne koščke. Vso izvorno kodo zapiše v datoteko ».js« in tolmač ne povzroča težav. Vendar je med ustvarjanjem zelo zapletene aplikacije Node.js priporočljivo razdeliti izvorno kodo na manjše module in jih nato združiti v povezano aplikacijo.

Hitri oris

Kaj je modul v Node.js?

V Node.js je » modul ” ustreza knjižnici, ki vzpostavi povezavo z aplikacijo na podlagi njenega konteksta. Razvijalcem omogoča, da znova uporabijo enkapsulirano kodo, kadar koli je to potrebno. Razdeljen je v tri glavne kategorije: »vgrajeni«, »lokalni« in moduli »tretjih oseb«. Ti moduli poleg tega vsebujejo širok nabor metod in lastnosti, ki izvajajo operacije, določene glede na njihove funkcionalnosti.







Kako odpraviti napako »modula ni mogoče najti« z uporabo Node.js?

V tem razdelku so navedeni vsi možni razlogi, ki povzročajo napako »Modula ni mogoče najti«, in nudi tudi uporabne rešitve za njeno odpravo:



1. razlog: zahtevani modul ni nameščen

Najpogostejši razlog za ' Modula ni mogoče najti ' Napaka je, da zahtevani ' modul tretje osebe ni nameščen ” v trenutnem projektu Node.js. Recimo, da uvozimo modul »mysql« tretje osebe v aplikaciji Node.js na ta način:



konst mysql = zahtevati ( 'mysql' ) ;

V zgornjem ukazu je » zahtevaj() ” vključuje modul “mysql” v trenutno aplikacijo node.js.





Izvedite datoteko ».js«:

indeks vozlišča. js

Spodnji izhod ustvari obravnavano napako, ker modul »mysql« ni nameščen v trenutnem projektu Node.js:



Rešitev: Namestite zahtevani modul

Rešitev zgoraj obravnavane napake je pravilna namestitev zahtevanega modula s pomočjo » npm / preja ” upravitelj paketov. Za ta scenarij je zahtevani modul »mysql« nameščen z namestitvenim ukazom »npm«:

npm namestite mysql

Izhod prikazuje uspešno namestitev modula »mysql« v trenutnem projektu Node.js:

Zdaj znova izvedite datoteko ».js«:

indeks vozlišča. js

Lahko se analizira, da je bil zgornji ukaz uspešno izveden, ne da bi ustvaril napako »modula ni mogoče najti«:

2. razlog: Napačna pot modula

Še en razlog za ' Modula ni mogoče najti ' napaka je ' nepravilna pot modula ”. Običajno se zgodi, ko uporabnik uvozi lokalni modul po njegovi relativni poti. Recimo, da uporabnik ustvari modul po meri v določeni mapi in ga uvozi v aplikacijo Node.js. Preden to storite, se prepričajte, da je navedena pot pravilna, sicer bo prišlo do obravnavane napake.

Na primer, lokalni/uporabniško določen modul z imenom ' mojModul « je prisoten v mapi »./custom-modules«:

Uporabnik uvozi zgoraj označeni »myModule« v trenutno aplikacijo Node.js prek njene relativne poti:

konst jezikov = zahtevati ( './myModule' ) ;

Zaženite datoteko ».js«:

indeks vozlišča. js

Vidimo lahko, da se zaradi nepravilne poti »myModule« ustvari napaka »Modula ni mogoče najti«:

Rešitev: Določite pravilno pot modula

Rešitev zgoraj obravnavane napake je določitev pravilne ali natančne poti modula, kjer se nahaja. Tukaj smo posredovali pravilno pot »myModule« za razrešitev napake »Modula ni mogoče najti«:

konst jezikov = zahtevati ( './custom-modules/myModule' ) ;

Zaženite datoteko ».js«:

indeks vozlišča. js

Opazimo lahko, da spodnji izhod ne prikazuje odkrite napake, ker je bila navedena pot uvoženega modula popravljena:

3. razlog: Napačno ime modula (razlikuje med velikimi in malimi črkami)

Moduli so ' razlikuje med velikimi in malimi črkami « v sistemih Linux in macOS, na primer, če je ime modula nameščeno z velikimi črkami in ga uporabnik uvozi z malimi črkami, nato pa » Modula ni mogoče najti ” bo ustvarjena napaka. To je zato, ker obstaja neujemanje med dejanskim imenom modula in uvoznim stavkom.

Tukaj je nameščen modul 'csvtojson' uvožen z 'velikimi črkami' v aplikacijo Node.js:

konst csvtojson = zahtevati ( 'CSVTOJSON' ) ;

Izvedite datoteko ».js«:

indeks vozlišča. js

Izhod ustvari napako »Modula ni mogoče najti« zaradi nepravilnega imena modula:

Rešitev: Vnesite pravilno ime modula

Rešitev zgoraj omenjene napake je določitev pravilnih črk (male ali velike) uvoženega modula med uporabo ' zahtevaj() ” metoda. V tem scenariju je modul »csvtojson« podan v metodi »require()« v pravilnem primeru:

konst csvtojson = zahtevati ( 'csvtojson' ) ;

Ponovno zaženite datoteko ».js«:

indeks vozlišča. js

Zdaj zgornji ukaz ni ustvaril napake »Modula ni mogoče najti«, ker je primer uvoženega paketa enak njegovemu dejanskemu imenu:

4. razlog: Napačna končnica datoteke

' Modula ni mogoče najti ' lahko pride tudi do napake zaradi ' nepravilna končnica datoteke ”. Podobno kot napačna pot do datoteke se zgodi v primeru lokalnih modulov. Na primer, lokalni modul je ustvarjen v datoteki ».json« in je določen v aplikaciji Node.js s pripono ».js«, nato pa se ustvari zgornja posebna napaka:

V tem scenariju je » myModule.js «, ki je prikazan v razlogu »Napačna pot modula«, je vzet kot vzorčna datoteka. Do njega lahko dostopate v trenutni aplikaciji Node.js tako, da podate njegovo pripono ».json« takole:

konst jezikov = zahtevati ( './custom-modules/myModule.json' ) ;

Izvedite datoteko ».js«:

indeks vozlišča. js

Izhod ustvari napako »Modula ni mogoče najti« zaradi nepravilne datotečne pripone datoteke »myModule«:

Rešitev: Vnesite pravilno pripono datoteke

Rešitev obravnavane napake je vnos pravilne končnice datoteke, v kateri je ustvarjen lokalni modul. Na primer, določili smo pravilno končnico datoteke »myModule.js«, da bi odpravili napako »Modula ni mogoče najti«:

konst jezikov = zahtevati ( './custom-modules/myModule.js' ) ;

Zaženite datoteko ».js«:

indeks vozlišča. js

Zdaj je bil zgornji ukaz uspešno izveden, ne da bi se prikazala napaka »Modula ni mogoče najti«:

Razlog 5: Globalna namestitev modula

Module vozlišča je mogoče namestiti lokalno (za določen projekt) ali globalno (za vse projekte). V Linuxu , Če je zahtevani modul nameščen globalno v operacijskem sistemu in do njega dostopate v določenem projektu brez lokalne namestitve, potem je » Modula ni mogoče najti ” se ustvari napaka.

Na primer, ' mongodb ” je globalno nameščen v operacijski sistem Linux prek sudo npm install -g mongodb ” in je dostopen lokalno v specifičnem projektu vozlišča:

konst mongodb = zahtevati ( 'mongodb' )

Zaženite datoteko ».js«:

indeks vozlišča. js

Izhod ustvari obravnavano napako, ker »mongodb« ni nameščen lokalno v trenutnem projektu Node:

Rešitev: Namestite modul lokalno

Rešitev za nastalo napako je lokalna namestitev modula za določen projekt Node.js v operacijskem sistemu, ki temelji na Linuxu.

Tukaj je ' mongodb ” je nameščen lokalno v trenutnem projektu s pomočjo namestitvenega ukaza “npm”:

npm namestite mongodb

Ko je lokalna namestitev »mongodb« končana, jo uvozite v datoteko ».js« in jo izvedite:

indeks vozlišča. js

Vidimo lahko, da je bila napaka »Modula ni mogoče najti« odpravljena z lokalno namestitvijo modula »mongodb« za trenutni projekt Node.js:

V sistemu Windows globalna in lokalna namestitev modula ne ustvari napake »modula ni mogoče najti«.

6. razlog: manjka vnosna datoteka

' Modula ni mogoče najti « se lahko ustvari tudi zaradi manjkajoče glavne vnosne datoteke v »package.json« modula. Glavna vnosna datoteka vsakega modula je privzeto datoteka 'index.js'.

Recimo, če ga uporabnik nehote odstrani, se bo ustvarila zgoraj navedena napaka. To je zato, ker med uvozom podanega modula » zahtevaj() ” se pomakne do mape tega modula in poišče vstopno točko; če ta ne obstaja, tega modula ne more uvoziti v aplikacijo Node.js.

Vnosna datoteka »index.js« zahtevanega modula je prisotna znotraj njegove strukture map. Spodnji delček prikazuje vnosno datoteko modula »mysql«:

Zdaj je zgoraj označena datoteka »index.js« odstranjena iz mape »mysql« in nato uvožen modul »mysql« v aplikacijo Node.js:

konst mysql = zahtevati ( 'mysql' )

Izvedite datoteko ».js«:

indeks vozlišča. js

Tukaj izhod ustvari napako »Modula ni mogoče najti«, ker manjka vnosna datoteka modula »mysql«:

Rešitev: Znova namestite zahtevani modul

Rešitev zgornje napake je brisanje » moduli_vozlišča ” in znova namestite zahtevani modul. Tukaj je modul “mysql” znova nameščen po izbrisu imenika “node_modules”:

npm namestite mysql

Po uspešni namestitvi »mysql« se novi » moduli_vozlišča ” se samodejno ustvari imenik, ki vsebuje strukturo mape modula “mysql”, v katerem je prisoten “index.js”:

Zdaj znova zaženite datoteko ».js«:

indeks vozlišča. js

Tukaj izhod ne ustvari napake »Modula ni mogoče najti« zaradi obstoja vnosne datoteke z imenom »index.js« modula »mysql«:

Kaj storiti, če se napaka »Modula ni mogoče najti« še vedno pojavlja?

Če je ' Modula ni mogoče najti ' napaka ostaja, potem ko jo rešite s katero koli od zgornjih rešitev, nato izbrišite ' moduli_vozlišča ” mapo. Mapa »node_modules« se samodejno ustvari, ko je nameščen modul tretje osebe. Vsebuje vse pakete tretjih oseb, od katerih je odvisen projekt Node.js.

Poleg tega je ' package-lock.json « samodejno ustvari tudi, ko je paket nameščen z »npm«. Hrani evidenco odvisnosti in pododvisnosti, od katerih je odvisen paket, skupaj z njihovimi različicami. Če je paket nameščen s »yarn«, je ime te datoteke » preja.ključavnica ”.

Rešitev: Odstranite mapo »node_modules« in datoteko »package-lock.json«.

Rešitev za nastalo napako je, da izbrišete mapo »node_modules« in datoteko »package-lock.json/yarn.lock« ter znova namestite zahtevani paket.

V Linuxu , lahko zgoraj navedeno mapo in datoteke izbrišete s pomočjo spodaj navedenega » rm (odstrani)” ukaz:

rm - paket rf node_modules - zaklepanje. json //Izbriši mapo in datoteko

ls // Prikaz datoteke in imenikov

V zgornjem ukazu je ' -r » zastavica izbriše določeno mapo « rekurzivno « vključno z vsemi njegovimi podimeniki in » f ' zastavica pove tolmaču, naj izvede to nalogo ' močno ”:

Izhod kaže, da sta bili mapa »node_modules« in datoteka »package-lock.json/yarn.lock« popolnoma odstranjeni iz trenutnega projekta Node.js:

V sistemu Windows , lahko uporabnik izbriše mapo »node_modules« in datoteko »package-lock.json/yarn.lock« preprosto s pritiskom na » izbrisati « ali z uporabo možnosti »izbriši« v spustnem meniju.

To je vse o razrešitvi napake »Modula ni mogoče najti« v Node.js.

Zaključek

Za rešitev ' Modula ni mogoče najti ”, “namestite zahtevani modul”, “določite njegovo pravilno pot”, “vnesite pravilno velikost črk v metodo “require()” in tudi “vnesite pravilno datotečno pripono”. Poleg tega je mogoče rešiti tudi 'lokalno namestitev modula' v projektu Node.js. Če se določena napaka ponovi, odstranite mapo »node_modules«, datoteko »package-lock.json« in nato ponovno namestite zahtevani modul prek »npm/yarn«. V tej objavi so obravnavani vsi možni razlogi skupaj z njihovo rešitvijo za odpravljanje napake »Modula ni mogoče najti« z uporabo Node.js.