Gyors vázlat
- Mi az a „modul” a Node.js-ben?
- Hogyan lehet megoldani a „Nem található modul” hibát a Node.js használatával?
- Következtetés
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 modul nincs telepítve
- Megoldás: Telepítse a szükséges modult
- 2. ok: hibás modulútvonal
- Megoldás: Adja meg a helyes modul elérési utat
- 3. ok: hibás modulnév (a kis- és nagybetűk megkülönböztetése)
- Megoldás: Írja be a helyes modulnevet
- 4. ok: Nem megfelelő fájlkiterjesztés
- Megoldás: Írja be a megfelelő fájlkiterjesztést
- 5. ok: Modul globális telepítése
- Megoldás: Helyben telepítse a modult
- 6. ok: Hiányzó belépési fájl
- Megoldás: Telepítse újra a szükséges modult
- Mi a teendő, ha a „Nem található modul” hiba továbbra is fennáll?
- Megoldás: Távolítsa el a „node_modules” mappát és a „package-lock.json” fájlt
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. jsAz 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éseA 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. jsMegá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. jsLá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. jsMegfigyelhető, 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. jsA 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. jsMost 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. jsA 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. jsMost 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. jsA 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. jsLá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. jsItt 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. jsItt 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ésels // 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.