Hogyan lehet megoldani a „referenceerror követelmény nincs megadva” hibát?

Hogyan Lehet Megoldani A Referenceerror Kovetelmeny Nincs Megadva Hibat



A Node.js önmagában semmi, létezése az egyes modulok által biztosított moduloktól és metódusoktól függ. A modulok használatához a fejlesztőnek először telepítenie kell, majd importálnia kell az éppen működő fájlba. A modulok importálásához két mód van, amelyek kifejezetten a fejlesztő által jelenleg használt JavaScript-verzióhoz kapcsolódnak, vagy amelyre az alkalmazás tulajdonosa építeni szeretne. Az importálás során több hibával is szembesülhet, és az egyik legnépszerűbb és leggyakoribb hiba a „ igényel() ” módszer leírása és megoldása folyamatban van.

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?

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. js

A 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