Cum se rezolvă eroarea „referenceerror require not defined”?

Cum Se Rezolva Eroarea Referenceerror Require Not Defined



Node.js nu este nimic în sine, existența sa depinde de modulele și metodele furnizate de fiecare modul. Pentru a lucra cu aceste module, dezvoltatorul trebuie mai întâi să îl instaleze și apoi să îl importe în fișierul care funcționează în prezent. Pentru a importa module, există două modalități care sunt legate în mod specific de versiunea de JavaScript pe care dezvoltatorul o folosește acum sau pe care proprietarul aplicației dorește să construiască. În timpul importării, există șansa de a vă confrunta cu mai multe erori și cea mai populară și cea mai comună eroare legată de „ cere() ” metoda este descrisă și rezolvată.

Acest ghid explică procedura de rezolvare a erorilor „ReferenceError: require is not defined”.

Cum se rezolvă eroarea „ReferenceError: require is not defined”?

Pentru a importa module externe sau încorporate în proiect sunt utilizate două abordări, acestea folosesc „ cere() „metoda” sau „ import ” cuvânt cheie. Menționatul „ ReferenceError: require nu este definit ” se confruntă atunci când un utilizator încearcă să folosească „ cere() ” metoda din interiorul “ modul ES ” domeniul de aplicare. Eroarea discutată apare astfel peste consola în node.js când este executat codul de mai jos:









Motivele apariției erorii „Rezolvați „Eroarea de referință: solicitarea nu este definită” și soluțiile lor corespunzătoare sunt explicate în secțiunile de mai jos.



Motivul 1: tipul de aplicație este setat la modul

Dacă aplicația dvs. afișează eroarea menționată, cea mai ușoară și de lungă durată soluție este modificarea „ pachet.json ” dosar. Căutați perechea cheie/valoare având „ cheie ' de ' tip ” și valoarea atribuită de “ modul ”. Acest lucru face ca mediul întregii aplicații să fie modular, ceea ce împiedică utilizarea vechilor „ CommonJS ” module și metode. Reprezentarea vizuală a acestei perechi cheie/valoare arată astfel:





'tip' : 'modul' ,

Soluție: Scoateți cheia „Tip”.

Soluția este eliminarea „ tip ” cheie și valoare atribuită din proiectul node.js ” pachet.json ” dosar. Eliminarea din fișierul „package.json” exploatează domeniul de aplicare al modulului ES6 și face ca metoda „require() să fie funcțională. Acum, când același cod este executat din nou, nu va apărea nicio eroare.



Motivul 2: Lucrul în „.mjs Fişier

.mjs ” este un fișier cod sursă JavaScript al modulului. Conține cod în mediul modulului nu în „ CommonJS ” care împarte codul în mai multe fișiere pentru o mai bună gestionare. „ cere() „Metoda” se află sub „ CommonJS ”. De aceea metoda „require” va deveni nedefinită atunci când este utilizată în interiorul „ .mjs ” și duce la apariția erorii menționate:

Soluție: convertiți extensia de fișier în „.cjs”

La fel ca codul sursă JavaScript modular, extensia de fișier „ .mjs ' este disponibil. Prelungirea lui „ .cjs ” este prevăzut pentru ” CommonJS ” module și proprietăți. Acest fișier nu acceptă „ modulare „pachete precum „ import ” dar funcționează bine cu versiunile ES5. În cazul nostru, modificarea extensiei de fișier va rezolva problema legată de „ cere() ” metoda:

Abordare alternativă: utilizați declarația ES6 „import/export”

cere() ” metoda este definită și furnizată de “ CommonJs ” și este acceptabil până la versiunea JavaScript a ES5 (ECMAScript 5). A fost publicat în 2009 și acum a devenit învechit, deoarece multe module recente nu îl acceptă sau nu funcționează corect în ES5. La fel ca „ cere() ” metoda este acum înlocuită cu mai optimizată și mai ușoară ” import ” declarații. Funcționarea ambelor entități este aceeași, dar „importul” are un avantaj superior datorită tehnologiei de ultimă oră și a ușurinței oferite de aceasta.

Pentru module implicite sau externe

În demonstrația de mai jos, instrucțiunea „import” este folosită ca alternativă la metoda „require()” pentru a importa modulul implicit sau de la terți:

import readlineObj din 'Citeste linia' ;

consolă. Buturuga ( readlineObj ) ;

După compilarea codului menționat, aceeași sarcină care trebuie făcută de către „ cere() se efectuează metoda și „ ReferenceError: require nu este definit ” nu va apărea la fel de bine:

Pentru modulele personalizate

import ” declarația este, de asemenea, utilizată pentru a „importa” modulele sau funcțiile personalizate din alte fișiere care se află în același director sau în diferite directoare. Funcțiile sau variabilele din alte fișiere sunt exportate folosind „ export ” cuvânt cheie. De exemplu, vizitați fragmentul de cod de mai jos în care o singură funcție și o variabilă aleatorie vor fi importate dintr-un alt fișier:

app.js

const exportVariable = „Acest ghid este furnizat de Linuxhint!” ;

const exportFunction = ( ) => {

consolă. Buturuga ( exportVariable ) ;

} ;

export Mod implicit exportFunction ;

export {

exportVariable

} ;

Explicația blocului de cod de mai sus este următoarea:

  • În primul rând, variabila aleatoare numită „ exportVariable ” este definit și funcția săgeată “ exportFunction() ” este creat care imprimă „exportVariable” creat peste consolă.
  • Cuvintele cheie pentru „ export implicit ' și ' export ' sunt utilizate pentru a exporta ' exportFunction() ' și ' exportVariable ” entități din dosar.
  • Când acest fișier este importat, funcția și variabilele exportate devin disponibile pentru a fi utilizate acolo.

index.js

„index.js” este fișierul nostru secundar în care funcția și variabila exportate vor fi importate și utilizate, conține codul menționat mai jos:

import exportFunction, { exportVariable } din „./app.js” ;

exportFunction ( ) ;

consolă. Buturuga ( exportVariable ) ;

În codul de mai sus, „ import ” este folosită pentru a importa „ implicit exportFunction() „și variabila „ exportVariable ' de la ' app.js ” dosar.

Apoi, ambele entități importate sunt invocate și afișate pe consolă în scopuri de verificare.

Acum, executați principalul „ index.js ” fișier folosind comanda menționată mai jos:

indexul nodului. js

Rezultatul generat arată că elementele importate funcționează corect fără a provoca „ ReferenceError: require nu este definit ” eroare:

Acesta este totul despre rezolvarea erorii specificate.

Concluzie

Pentru a rezolva „ ReferenceError: require nu este definit „, eliminați „ tip tasta ” având valoarea ” modul ' de la ' pachet.json ” sau modificați extensia de fișier care funcționează în prezent la „ .cjs ”. În cazul în care doriți să lucrați în versiunea modulară ES6, atunci în loc să utilizați „ cere() „Metoda folosiți „ import ” abordarea declarațiilor. Acest ghid a explicat posibilele remedieri pentru a rezolva problema „ ReferenceError: require nu este definit „eroare” în node.js