Hogyan lehet megoldani a „Nem található modul” hibát a Node.js használatával?

Hogyan Lehet Megoldani A Nem Talalhato Modul Hibat A Node Js Hasznalataval



Más programozási nyelvekhez hasonlóan a Node.js-nek sem kell apró darabokra bontania az alkalmazás forráskódját. Az összes forráskódot egy „.js” fájlba írja, és az értelmező nem okoz problémát. Egy nagyon összetett Node.js alkalmazás létrehozásakor azonban ajánlatos a forráskódot kisebb modulokra bontani, majd összevonni őket egy összefüggő alkalmazásba.

Gyors vázlat

Mi az a modul a Node.js-ben?

A Node.js-ben a „ modult ” olyan könyvtárnak felel meg, amely a kontextusa alapján kapcsolatot épít ki egy alkalmazással. Lehetővé teszi a fejlesztők számára, hogy szükség esetén újra felhasználják a beágyazott kódot. Három fő kategóriába sorolható: „beépített”, „helyi” és „harmadik féltől származó” modulok. Ezek a modulok továbbá olyan módszerek és tulajdonságok széles skáláját tartalmazzák, amelyek a funkcionalitásuknak megfelelően meghatározott műveleteket hajtanak végre.







Hogyan lehet megoldani a „Nem található modul” hibát a Node.js használatával?

Ez a szakasz felsorolja az összes lehetséges okot, amelyek a „Nem található modul” hibát generálják, és a megoldásra szolgáló működőképes megoldásokat is megadja:



1. ok: A szükséges modul nincs telepítve

A leggyakoribb oka a „ A modul nem található 'A hiba az, hogy a kötelező' harmadik féltől származó modul nincs telepítve ” az aktuális Node.js projektben. Tegyük fel, hogy a harmadik féltől származó „mysql” modult a Node.js alkalmazásba a következő módon importáljuk:



const mysql = igényelnek ( 'mysql' ) ;

A fenti parancsban a „ igényel() ” metódus tartalmazza a „mysql” modult az aktuális node.js alkalmazáshoz.





Futtassa a „.js” fájlt:

csomópont index. js

Az alábbi kimenet generálja a tárgyalt hibát, mert a „mysql” modul nincs telepítve az aktuális Node.js projektben:



Megoldás: Telepítse a szükséges modult

A fent tárgyalt hiba megoldása a szükséges modul megfelelő telepítése a „ npm / fonal ” csomagkezelő. Ebben a forgatókönyvben a szükséges „mysql” modul az „npm” telepítési paranccsal kerül telepítésre:

npm mysql telepítése

A kimenet a „mysql” modul sikeres telepítését mutatja az aktuális Node.js projektben:

Most futtassa újra a „.js” fájlt:

csomópont index. js

Megállapítható, hogy a fenti parancs sikeresen végrehajtva a „Modul nem található” hibaüzenet generálása nélkül:

2. ok: hibás modulútvonal

Egy másik ok a „ A modul nem található ' hiba a ' helytelen modulútvonal ”. Ez általában akkor történik, amikor a felhasználó egy helyi modult importál a relatív útvonalán. Tegyük fel, hogy a felhasználó létrehoz egy egyéni modult az adott mappában, és importálja a Node.js alkalmazásba. Mielőtt ezt megtenné, győződjön meg arról, hogy a megadott elérési út helyes, ellenkező esetben a tárgyalt hiba lép fel.

Például egy helyi/felhasználó által definiált modul, melynek neve ' myModule ' található a './custom-modules' mappában:

A felhasználó importálja a fent kiemelt „myModule”-ot az aktuális Node.js alkalmazásba a relatív elérési útján:

const nyelvek = igényelnek ( './myModule' ) ;

Futtassa a „.js” fájlt:

csomópont index. js

Látható, hogy a „myModule” helytelen elérési útja miatt a „Modul nem található” hibaüzenet generálódik:

Megoldás: Adja meg a helyes modul elérési utat

A fent tárgyalt hiba megoldása az, hogy meg kell adni a modul helyes vagy pontos elérési útját, ahol az található. Itt átadtuk a megfelelő útvonalat a „myModule”-nak, hogy megoldjuk a „Nem található modul” hibát:

const nyelvek = igényelnek ( './custom-modules/myModule' ) ;

Indítsa el a „.js” fájlt:

csomópont index. js

Megfigyelhető, hogy az alábbi kimenet nem mutatja a felmerült hibát, mert az importált modul megadott elérési útja javítva lett:

3. ok: hibás modulnév (a kis- és nagybetűk megkülönböztetése)

A modulok „ Kis-nagybetű érzékeny ' Linux és macOS rendszerben, például ha a modul neve nagybetűvel van telepítve, és a felhasználó kisbetűkkel importálja, akkor a ' A modul nem található ” hiba generálódik. Ez azért van, mert eltérés van a tényleges modulnév és az import utasítás között.

Itt a telepített „csvtojson” modul „nagybetűvel” importálva lesz a Node.js alkalmazásba:

const csvtojson = igényelnek ( 'CSVTOJSON' ) ;

Futtassa a „.js” fájlt:

csomópont index. js

A kimenet „A modul nem található” hibát generál a helytelen modulnév miatt:

Megoldás: Írja be a helyes modulnevet

A fenti hiba megoldása az importált modul helyes kis- és nagybetűjének megadása (alsó vagy felső) a „ igényel() ” módszerrel. Ebben a forgatókönyvben a „csvtojson” modul a „require()” metódusban van megadva a megfelelő esetben:

const csvtojson = igényelnek ( 'csvtojson' ) ;

Futtassa újra a „.js” fájlt:

csomópont index. js

Most a fenti parancs nem generálta a „Modul nem található” hibát, mert az importált csomag esete megegyezik a tényleges nevével:

4. ok: Nem megfelelő fájlkiterjesztés

A ' A modul nem található ' hiba is előfordulhat a ' helytelen fájlkiterjesztés ”. A helytelen fájl elérési úthoz hasonlóan ez a helyi modulok esetében is előfordul. Például egy helyi modul létrejön a „.json” fájlban, és a Node.js alkalmazásban „.js” kiterjesztéssel kerül meghatározásra, majd a fenti hiba generálódik:

Ebben a forgatókönyvben a „ myModule.js A „Incorrect Module Path” indoklásban látható ” mintafájlnak minősül. A jelenlegi Node.js alkalmazásban érhető el a „.json” kiterjesztésének megadásával, így:

const nyelvek = igényelnek ( './custom-modules/myModule.json' ) ;

Futtassa a „.js” fájlt:

csomópont index. js

A kimenet „A modul nem található” hibát generálja a „myModule” fájl helytelen kiterjesztése miatt:

Megoldás: Írja be a megfelelő fájlkiterjesztést

A tárgyalt hiba megoldása a megfelelő fájlkiterjesztés beírása, amelyben a helyi modul létrejön. Például megadtuk a „myModule.js” fájl megfelelő kiterjesztését a „Cannot find module” hiba megoldására:

const nyelvek = igényelnek ( './custom-modules/myModule.js' ) ;

Futtassa a „.js” fájlt:

csomópont index. js

Most a fenti parancs sikeresen végrehajtásra került, anélkül, hogy megjelent volna a „Modul nem található” hibaüzenet:

5. ok: Modul globális telepítése

A csomópontmodulok telepíthetők helyileg (egy adott projekthez) vagy globálisan (minden projekthez). Linux alatt , Ha a szükséges modult globálisan telepítik egy operációs rendszerbe, és egy adott projektben érik el helyi telepítés nélkül, akkor a „ A modul nem található ” hiba keletkezik.

Például a „ mongodb ' modul globálisan telepítve van a Linux operációs rendszerbe a ' sudo npm install -g mongodb ” parancsot, és helyileg érhető el az adott csomópont projektben:

const mongodb = igényelnek ( 'mongodb' )

Futtassa a „.js” fájlt:

csomópont index. js

A kimenet a tárgyalt hibát generálja, mert a „mongodb” nincs helyileg telepítve az aktuális Node projektben:

Megoldás: Helyben telepítse a modult

A felmerült hiba megoldása a modul helyi telepítése egy adott Node.js projekthez Linux alapú operációs rendszeren.

Itt a „ mongodb ” modul helyileg telepítve van az aktuális projektben az „npm” telepítési parancs segítségével:

npm mongodb telepítése

Amikor a „mongodb” helyi telepítése befejeződött, importálja azt a „.js” fájlba, és futtassa:

csomópont index. js

Látható, hogy a „Modul nem található” hiba megoldódott a „mongodb” modul helyi telepítésével az aktuális Node.js projekthez:

Windows rendszerben egy modul globális és helyi telepítése nem generálja a „Modul nem található” hibát.

6. ok: Hiányzó belépési fájl

A ' A modul nem található ” hiba is generálható, mert hiányzik a fő bejegyzési fájl a modul „package.json” fájljában. Az egyes modulok fő belépési fájlja alapértelmezés szerint az „index.js” fájl.

Tegyük fel, hogy ha a felhasználó véletlenül eltávolítja, akkor a fent említett hiba keletkezik. Ennek az az oka, hogy a megadott modul importálása közben a „ igényel() ” metódus az adott modul mappájába navigál, és megkeresi a belépési pontot, ha nem létezik, akkor nem tudja importálni a modult a Node.js alkalmazásba.

A szükséges modul „index.js” beviteli fájlja a mappastruktúrán belül található. Az alábbi részlet a „mysql” modul belépési fájlját mutatja:

Most a fent kiemelt „index.js” fájl eltávolításra kerül a „mysql” mappából, majd importálja a „mysql” modult a Node.js alkalmazásba:

const mysql = igényelnek ( 'mysql' )

Futtassa a „.js” fájlt:

csomópont index. js

Itt a kimenet „A modul nem található” hibát generál, mert hiányzik a „mysql” modul belépési fájlja:

Megoldás: Telepítse újra a szükséges modult

A fenti hiba megoldása a „ node_modules ” könyvtárba, és telepítse újra a szükséges modult. Itt a „mysql” modul újratelepül a „node_modules” könyvtár törlése után:

npm mysql telepítése

A „mysql” sikeres telepítése után az új „ node_modules ” könyvtár automatikusan létrejön, amely tartalmazza a „mysql” modul mappastruktúráját, amelyben az „index.js” megtalálható:

Most futtassa újra a „.js” fájlt:

csomópont index. js

Itt a kimenet nem generál „A modul nem található” hibát a „mysql” modul „index.js” nevű belépési fájlja miatt:

Mi a teendő, ha a „Nem található modul” hiba továbbra is fennáll?

Ha a „ A modul nem található ” hiba továbbra is fennáll, miután a fenti megoldások bármelyikével megoldotta, majd törölje a „ node_modules ” mappát. A „node_modules” mappa automatikusan létrejön, amikor egy harmadik féltől származó modult telepítenek. Tartalmazza az összes harmadik féltől származó csomagot, amelytől a Node.js projekt függ.

Ráadásul a „ package-lock.json ” fájl is automatikusan generálódik, ha egy csomagot „npm”-mel telepítenek. Nyilvántartja azokat a függőségeket és részfüggőségeket, amelyektől a csomag függ, valamint azok verzióit. Ha a csomag „yarn”-nel van telepítve, akkor ez a fájlnév „ fonal.zár ”.

Megoldás: Távolítsa el a „node_modules” mappát és a „package-lock.json” fájlt

A felmerült hiba megoldása a „node_modules” mappa és a „package-lock.json/yarn.lock” fájl törlése, majd a szükséges csomag újbóli telepítése.

Linux alatt , a fent megadott mappa és fájlok törölhetők az alábbi „ rm (eltávolítás)” parancs:

rm - rf node_modules csomag - zár. json //Mappa és fájl törlése

ls // Fájlok és könyvtárak megjelenítése

A fenti parancsban a „ -r ' zászló törli a megadott mappát ' rekurzív módon ' beleértve az összes alkönyvtárát és a ' f ' zászló azt mondja a tolmácsnak, hogy hajtsa végre ezt a feladatot' erőteljesen ”:

A kimenet azt mutatja, hogy a „node_modules” mappa és a „package-lock.json/yarn.lock” fájl teljesen el lett távolítva az aktuális Node.js projektből:

Windows rendszerben , a felhasználó egyszerűen törölheti a „node_modules” mappát és a „package-lock.json/yarn.lock” fájlt a „ töröl ” gombbal vagy a legördülő menü „törlés” opciójával.

Ez minden a Node.js „A modul nem található” hibájának megoldásáról szól.

Következtetés

A „ A modul nem található ” hiba, „telepítse a szükséges modult”, „adja meg a helyes elérési utat”, „írja be a megfelelő kis- és nagybetűt a „require()” metódusba”, valamint „írja be a megfelelő fájlkiterjesztést”. Ezenkívül megoldható a modul helyi telepítése is a Node.js projektben. Ha az adott hiba továbbra is fennáll, távolítsa el a „node_modules” mappát, a „package-lock.json” fájlt, majd telepítse újra a szükséges modult az „npm/yarn” segítségével. Ez a bejegyzés megvitatja az összes lehetséges okot, valamint a „Nem található modul” hiba megoldását a Node.js használatával.