Ez az útmutató elmagyarázza a „ReferenceError: a követelmény nincs megadva” hibák feloldásának eljárását.
- Hogyan lehet megoldani a „ReferenceError: a követelmény nincs megadva” hibát?
- 1. ok: Az alkalmazás típusa modulra van állítva
- Megoldás: Távolítsa el a „Típus” gombot
- 2. ok: „.mjs ” Fájl
- Megoldás: Alakítsa át a fájlkiterjesztést „.cjs”-re
- Alternatív megközelítés: Használja az ES6 „import/export” utasítást
Hogyan lehet megoldani a „ReferenceError: a követelmény nincs megadva” hibát?
A projektbe külső vagy beépített modulok importálásához két megközelítést alkalmazunk, ezek a „ igényel() ' módszer vagy ' import ” kulcsszó. Az említett „ ReferenceError: a követelmény nincs megadva ' találkozik, amikor a felhasználó megpróbálja használni a ' igényel() ' módszer a ' ES modul ” terjedelmét. A tárgyalt hiba így jelenik meg a konzolon a node.js fájlban, amikor az alábbi kód végrehajtásra kerül:
A „Resolve „ReferenceError: a követelmény nincs megadva” hiba előfordulásának okait és a megfelelő megoldásokat az alábbi szakaszok ismertetik.
1. ok: Az alkalmazás típusa Modulra van állítva
Ha az alkalmazás az említett hibát jeleníti meg, akkor a legegyszerűbb és hosszú távú megoldás a „ package.json ” fájlt. Keresse meg azt a kulcs/érték párt, amelynek kulcs ' nak,-nek ' típus ' és a hozzárendelt értéke modul ”. Ez modulárissá teszi az egész alkalmazás környezetét, ami megakadályozza a régi „ CommonJS ” modulok és módszerek. Ennek a kulcs/érték párnak a vizuális megjelenítése így néz ki:
'típus' : 'modul' ,
Megoldás: Távolítsa el a „Típus” gombot
A megoldás a „ típus ” kulcs és hozzárendelt érték a node.js projektből ” package.json ” fájlt. A „package.json” fájlból való eltávolítás kihasználja az ES6 modul hatókörét, és működőképessé teszi a „require() metódust. Most, amikor ugyanazt a kódot ismét lefutja, nem lesz hiba.
2. ok: „.mjs ” Fájl
A ' .mjs ” egy Modul JavaScript forráskód fájl. Kódot tartalmaz a modulkörnyezeten belül, nem a ' CommonJS ”, amely a kódot több fájlra bontja a jobb kezelhetőség érdekében. A ' igényel() ' módszer a ' CommonJS ”. Ez az oka annak, hogy a „require” metódus definiálatlanná válik, ha a „ .mjs ” fájlkiterjesztést, és az említett hiba előfordulásához vezet:
Megoldás: Alakítsa át a fájlkiterjesztést „.cjs”-re
A moduláris JavaScript-forráskódhoz hasonlóan a ' .mjs ' elérhető. A „ .cjs ' a ' CommonJS ” modulok és tulajdonságok. Ez a fájl nem fogadja el a ' moduláris ' csomagok, mint a ' import ”, de jól működik az ES5 verziókkal. Esetünkben a változó fájlkiterjesztés megoldja a „ igényel() ” módszer:
Alternatív megközelítés: Használja az ES6 „import/export” utasítást
A ' igényel() ” módszert a „ CommonJs ” és az ES5 (ECMAScript 5) JavaScript-verziójáig elfogadható. 2009-ben jelent meg, és mára elavulttá vált, mivel sok legújabb modul nem támogatja, vagy nem működik megfelelően az ES5-ben. Csakúgy, mint a „ igényel() 'a módszert most optimalizáltabb és egyszerűbb' váltja fel import ” nyilatkozatok. Mindkét entitás működése megegyezik, de az „importnak” van egy felső széle a legújabb technológia és az általa nyújtott könnyebbség miatt.
Alapértelmezett vagy külső modulokhoz
Az alábbi bemutatóban az „import” utasítást a „require()” metódus alternatívájaként használjuk az alapértelmezett vagy harmadik féltől származó modul importálásához:
import readlineObj tól től 'olvasóvonal' ;konzol. log ( readlineObj ) ;
Az említett kód összeállítása után ugyanazt a feladatot kell elvégeznie a „ igényel() ” módszert hajtják végre, és a „ ReferenceError: a követelmény nincs megadva ” sem jelenik meg:
Egyedi építésű modulokhoz
A ' import ” utasítás az egyedi felépítésű modulok vagy funkciók „importálására” is használható más fájlokból, amelyek ugyanabban vagy különböző könyvtárakban találhatók. A függvények vagy változók más fájlokból a ' export ” kulcsszó. Látogassa meg például az alábbi kódrészletet, amelyben egyetlen függvény és egy véletlen változó importálásra kerül egy másik fájlból:
app.js
const exportVariable = 'Ezt az útmutatót a Linuxhint biztosítja!' ;const exportFunction = ( ) => {
konzol. log ( exportVariable ) ;
} ;
export alapértelmezett exportFunction ;
export {
exportVariable
} ;
A fenti kódblokk magyarázata a következő:
- Először is a „ exportVariable ' van definiálva, és a nyíl függvény ' exportFunction() ” jön létre, amely kinyomtatja a létrehozott „exportVariable”-t a konzolon.
- A ' alapértelmezett exportálás ” és „ export ' a ' exportFunction() ” és „ exportVariable ” entitásokat a fájlból.
- A fájl importálásakor az exportált függvény és változók használhatóvá válnak.
index.js
Az „index.js” a másodlagos fájlunk, amelyben az exportált függvény és változó importálásra és felhasználásra kerül, és az alábbi kódot tartalmazza:
import exportFunction, { exportVariable } tól től './app.js' ;exportFunction ( ) ;
konzol. log ( exportVariable ) ;
A fenti kódban a „ import ' utasítás az alapértelmezett ' exportFunction() ' és a ' változó exportVariable ' tól ' app.js ” fájlt.
Ezután mindkét importált entitás meghívásra kerül, és ellenőrzés céljából megjelenik a konzolon.
Most hajtsa végre a fő ' index.js ” fájl az alábbi paranccsal:
csomópont index. jsA generált kimenet azt mutatja, hogy az importált elemek megfelelően működnek anélkül, hogy a ' ReferenceError: a követelmény nincs megadva ” hiba:
Ez minden a megadott hiba elhárításáról szól.
Következtetés
A ' ReferenceError: a követelmény nincs megadva ' hiba, távolítsa el a ' típus ' kulcs, amelynek értéke ' modul ' tól ' package.json ' vagy módosítsa a jelenleg működő fájl kiterjesztését '' .cjs ”. Ha az ES6 moduláris változatban szeretne dolgozni, akkor ahelyett, hogy a „ igényel() ' módszert használja a ' import ” kijelentések megközelítése. Ez az útmutató ismerteti a lehetséges javításokat a „ ReferenceError: a követelmény nincs megadva 'hiba' a node.js-ben