Kako riješiti pogrešku 'referenceerror require is not defined'?

Kako Rijesiti Pogresku Referenceerror Require Is Not Defined



Node.js nije ništa sam po sebi, njegovo postojanje ovisi o modulima i metodama koje nudi svaki modul. Da bi radio s ovim modulima, programer ih mora najprije instalirati, a zatim uvesti unutar datoteke koja trenutno radi. Za uvoz modula postoje dva načina koja su posebno povezana s verzijom JavaScripta koju programer sada koristi ili na kojoj vlasnik aplikacije želi graditi. Tijekom uvoza postoji mogućnost da se suočite s višestrukim pogreškama i jednom popularnom i najčešćom pogreškom koja se odnosi na ' zahtijevati () ” metoda se opisuje i rješava.

Ovaj vodič objašnjava postupak rješavanja pogreške 'ReferenceError: require is not defined'.

Kako riješiti pogrešku 'ReferenceError: require is not defined'?

Za uvoz vanjskih ili ugrađenih modula u projekt koriste se dva pristupa, a to je korištenje ' zahtijevati () ' metoda ili ' uvoz ” ključna riječ. Spomenuti “ ReferenceError: zahtjev nije definiran ” kada korisnik pokuša upotrijebiti „ zahtijevati () ' metoda unutar ' ES modul ” opseg. Pogreška o kojoj se raspravlja pojavljuje se ovako preko konzole u node.js kada se izvrši dolje navedeni kod:









Razlozi za pojavu pogreške 'Riješi 'ReferenceError: zahtjev nije definiran'' i njihova odgovarajuća rješenja objašnjeni su u odjeljcima u nastavku.



Razlog 1: Vrsta aplikacije je postavljena na Module

Ako vaša aplikacija prikazuje navedenu grešku, najlakše i dugoročno rješenje je izmjena “ paket.json ' datoteka. Potražite par ključ/vrijednost koji ima ' ključ ” od “ tip ” i dodijeljena vrijednost „ modul ”. To čini okolinu cijele aplikacije modularnom, što sprječava korištenje starih “ CommonJS ” moduli i metode. Vizualni prikaz ovog para ključ/vrijednost izgleda ovako:





'tip' : 'modul' ,

Rješenje: Uklonite tipku 'Type'.

Rješenje je uklanjanje ' tip ” ključ i dodijeljena vrijednost iz projekta node.js “ paket.json ' datoteka. Uklanjanje iz datoteke 'package.json' iskorištava opseg ES6 modula i čini metodu 'require() funkcionalnom. Sada, kada se isti kod ponovno izvrši, neće doći do greške.



Razlog 2: Rad u “.mjs Datoteka

' .mjs ” je datoteka izvornog koda JavaScript modula. Sadrži kod unutar okruženja modula ne u ' CommonJS ” koji dijeli kod u više datoteka radi bolje upravljivosti. ' zahtijevati () ' metoda nalazi se pod ' CommonJS ”. Zato će metoda 'require' postati nedefinirana kada se koristi unutar ' .mjs ” datotečni nastavak i dovodi do pojave navedene pogreške:

Rješenje: Pretvorite ekstenziju datoteke u '.cjs'

Baš poput modularnog JavaScript izvornog koda, ekstenzija datoteke ' .mjs ' dostupan. Proširenje ' .cjs ' predviđeno je za ' CommonJS ” moduli i svojstva. Ova datoteka ne prihvaća ' modularni ” paketi poput “ uvoz ”, ali dobro radi s verzijama ES5. U našem slučaju, promjena ekstenzije datoteke riješit će problem vezan uz ' zahtijevati () ” metoda:

Alternativni pristup: Koristite ES6 izjavu 'uvoz/izvoz'

' zahtijevati () ” definirana je i osigurana metodom „ CommonJs ” i prihvatljiv je do JavaScript verzije ES5 (ECMAScript 5). Objavljen je 2009. godine i sada je zastario jer ga mnogi najnoviji moduli ne podržavaju ili ne rade ispravno u ES5. Baš kao i ' zahtijevati () 'metoda se sada zamjenjuje optimiziranijom i jednostavnijom' uvoz ” izjave. Rad oba entiteta je isti, ali 'uvoz' ima prednost zbog najnovije tehnologije i veće jednostavnosti koju ona pruža.

Za zadane ili vanjske module

U donjoj demonstraciji, izjava 'import' koristi se kao alternativa metodi 'require()' za uvoz zadanog modula ili modula treće strane:

uvoz readlineObj iz 'readline' ;

konzola. log ( readlineObj ) ;

Nakon kompilacije navedenog koda, isti zadatak koji treba obaviti “ zahtijevati () ” izvodi se metoda i „ ReferenceError: zahtjev nije definiran ” također se neće pojaviti:

Za prilagođene module

' uvoz ” izjava se također koristi za “uvoz” prilagođenih modula ili funkcija iz drugih datoteka koje se nalaze u istom ili različitim direktorijima. Funkcije ili varijable iz drugih datoteka izvoze se pomoću ' izvoz ” ključna riječ. Na primjer, posjetite donji isječak koda u kojem će se jedna funkcija i slučajna varijabla uvesti iz druge datoteke:

app.js

konst izvozna varijabla = 'Ovaj vodič je osigurao Linuxhint!' ;

konst exportFunction = ( ) => {

konzola. log ( izvozna varijabla ) ;

} ;

izvoz zadano exportFunction ;

izvoz {

izvozna varijabla

} ;

Objašnjenje gornjeg bloka koda je sljedeće:

  • Prvo, slučajna varijabla pod nazivom ' izvozna varijabla ” je definirana i funkcija strelice “ exportFunction() ” kreira se koja ispisuje stvorenu “exportVariable” preko konzole.
  • Ključne riječi za ' izvoz zadanih ' i ' izvoz ' koriste se za izvoz ' exportFunction() ' i ' izvozna varijabla ” entiteta iz datoteke.
  • Kada se ova datoteka uveze, izvezene funkcije i varijable tamo postaju dostupne za korištenje.

index.js

'Index.js' je naša sekundarna datoteka u koju će se izvezena funkcija i varijabla uvesti i koristiti, sadrži dolje naveden kod:

uvoz funkcija izvoza, { izvozna varijabla } iz './app.js' ;

exportFunction ( ) ;

konzola. log ( izvozna varijabla ) ;

U gornjem kodu, ' uvoz ' izjava se koristi za uvoz zadane ' exportFunction() ” i varijabla “ izvozna varijabla ' od ' app.js ' datoteka.

Zatim se oba uvezena entiteta pozivaju i prikazuju preko konzole u svrhu provjere.

Sada izvršite glavni ' index.js ” pomoću dolje navedene naredbe:

indeks čvora. js

Generirani izlaz pokazuje da uvezeni elementi rade ispravno bez uzroka ' ReferenceError: zahtjev nije definiran ” pogreška:

To je sve o rješavanju navedene pogreške.

Zaključak

Za rješavanje ' ReferenceError: zahtjev nije definiran ', uklonite ' tip ' ključ koji ima vrijednost ' modul ' od ' paket.json ” ili promijenite trenutno radnu ekstenziju datoteke u „ .cjs ”. U slučaju da želite raditi u modularnoj verziji ES6, umjesto korištenja ' zahtijevati () ' metoda koristite ' uvoz ” pristup izjavama. Ovaj vodič je objasnio moguće popravke za rješavanje ' ReferenceError: zahtjev nije definiran ”greška” u node.js