Com resoldre l'error 'referenceerror require not defined'?

Com Resoldre L Error Referenceerror Require Not Defined



Node.js no és res per si mateix, la seva existència depèn dels mòduls i mètodes proporcionats per cada mòdul. Per treballar amb aquests mòduls, el desenvolupador primer l'ha d'instal·lar i després importar-lo dins del fitxer que treballa actualment. Per importar mòduls, hi ha dues maneres que estan enllaçades específicament amb la versió de JavaScript que el desenvolupador està utilitzant ara o sobre la qual el propietari de l'aplicació vol construir. Durant la importació, hi ha la possibilitat d'enfrontar-se a diversos errors i l'error popular i més comú relacionat amb el ' requerir () s'està descrivint i resolent el mètode.

Aquesta guia explica el procediment per resoldre els errors 'ReferenceError: require is not defined'.

Com resoldre l'error 'ReferenceError: require is not defined'?

Per importar mòduls externs o integrats al projecte s'utilitzen dos enfocaments, aquests utilitzen el ' requerir () mètode ' o ' importar ” paraula clau. L'esmentat ' ReferenceError: require no està definit ' s'enfronta quan un usuari intenta utilitzar el ' requerir () ' mètode dins del ' ÉS module ” àmbit. L'error comentat apareix així a la consola a node.js quan s'executa el codi que s'indica a continuació:









A les seccions següents s'expliquen els motius de l'aparició de l'error 'Resolució de l'error de referència: no s'ha definit' i les seves solucions corresponents.



Motiu 1: el tipus d'aplicació s'estableix en Mòdul

Si la vostra aplicació mostra l'error esmentat, la solució més fàcil i de llarga durada és la modificació del ' package.json ' dossier. Cerqueu el parell clau/valor que tingui el ' clau ' de ' tipus ” i el valor assignat de “ mòdul ”. Això fa que l'entorn de tota l'aplicació sigui modular, cosa que impedeix l'ús d'antigues ' Comú JS ” mòduls i mètodes. La representació visual d'aquest parell clau/valor apareix així:





'tipus' : 'mòdul' ,

Solució: traieu la clau 'Tipus'.

La solució és l'eliminació del ' tipus 'clau i valor assignat del projecte node.js' package.json ' dossier. L'eliminació del fitxer 'package.json' explota l'abast del mòdul ES6 i fa que el mètode 'require() sigui viable. Ara, quan torni a executar el mateix codi, no hi haurà cap error.



Raó 2: treballant a “.mjs Dossier

El ' .mjs ” és un fitxer de codi font JavaScript del mòdul. Conté codi dins de l'entorn del mòdul no a ' Comú JS ” que divideix el codi en diversos fitxers per a una millor gestió. El ' requerir () 'El mètode es troba sota el ' Comú JS ”. És per això que el mètode 'requereix' quedarà sense definir quan s'utilitzi dins del ' .mjs ” i condueix a l'aparició de l'error esmentat:

Solució: Converteix l'extensió de fitxer a '.cjs'

Igual que el codi font modular de JavaScript, l'extensió de fitxer de ' .mjs ' està disponible. L'extensió de ' .cjs ' està previst per ' Comú JS ” mòduls i propietats. Aquest fitxer no accepta “ modular 'paquets com ' importar ” però funciona bé amb les versions ES5. En el nostre cas, la modificació de l'extensió del fitxer resoldrà el problema relacionat amb el ' requerir () ” mètode:

Enfocament alternatiu: utilitzeu la declaració ES6 'importar/exportar'

El ' requerir () 'El mètode està definit i proporcionat pel ' Js comuns ” i és acceptable fins a la versió de JavaScript d'ES5 (ECMAScript 5). Es va publicar l'any 2009 i ara ha quedat obsolet, ja que molts mòduls més recents no l'admeten o no funcionen correctament a ES5. Igual que el ' requerir () 'El mètode ara s'està substituint per un mètode més optimitzat i fàcil' importar ” declaracions. El funcionament d'ambdues entitats és el mateix però la 'importació' té un avantatge superior a causa de l'última tecnologia i més facilitat que ofereix.

Per a mòduls per defecte o externs

A la demostració següent, la instrucció 'import' s'utilitza com a alternativa al mètode 'require()' per importar el mòdul predeterminat o de tercers:

importar readlineObj des de 'línea de lectura' ;

consola. registre ( readlineObj ) ;

Després de la compilació del codi esmentat, la mateixa tasca que ha de fer el ' requerir () es realitza el mètode ' i ReferenceError: require no està definit ” no apareixerà també:

Per a mòduls personalitzats

El ' importar La declaració també s'utilitza per 'importar' els mòduls o funcions personalitzats d'altres fitxers que resideixen al mateix directori o en diferents directoris. Les funcions o variables d'altres fitxers s'exporten mitjançant el ' exportar ” paraula clau. Per exemple, visiteu el fragment de codi següent en el qual s'importarà una funció única i una variable aleatòria d'un altre fitxer:

app.js

const exportar variable = 'Aquesta guia la proporciona Linuxhint!' ;

const exportFunction = ( ) => {

consola. registre ( exportar variable ) ;

} ;

exportar per defecte exportFunction ;

exportar {

exportar variable

} ;

L'explicació del bloc de codi anterior és la següent:

  • Primer, la variable aleatòria anomenada ' exportar variable ' es defineix i la funció de fletxa ' exportFunction() ' es crea que imprimeix la 'exportVariable' creada a la consola.
  • Les paraules clau de ' exporta per defecte ' i ' exportar ' s'utilitzen per exportar el ' exportFunction() ' i ' exportar variable ” entitats del fitxer.
  • Quan s'importa aquest fitxer, la funció exportada i les variables estan disponibles per utilitzar-hi.

index.js

El 'index.js' és el nostre fitxer secundari en el qual s'importarà i utilitzarà la funció exportada i la variable, conté el codi que s'indica a continuació:

importar funció d'exportació, { exportar variable } des de './app.js' ;

exportFunction ( ) ;

consola. registre ( exportar variable ) ;

En el codi anterior, el ' importar ” s'utilitza per importar el valor predeterminat “ exportFunction() ' i la variable ' exportar variable ' de la ' app.js ' dossier.

Aleshores, les dues entitats importades s'invoquen i es mostren a la consola amb finalitats de verificació.

Ara, executeu el principal ' index.js ” amb l'ordre indicat a continuació:

índex de nodes. js

La sortida generada mostra que els elements importats funcionen correctament sense provocar el ' ReferenceError: require no està definit ” error:

Això es tracta de resoldre l'error especificat.

Conclusió

Per resoldre el ' ReferenceError: require no està definit ' error, elimineu el ' tipus clau ' que té el valor ' mòdul ' de la ' package.json ' o modifiqueu l'extensió de fitxer que treballa actualment a ' .cjs ”. Si voleu treballar a la versió modular ES6, en comptes d'utilitzar el ' requerir () ', utilitza el mètode ' importar ” s'acosta a les declaracions. Aquesta guia ha explicat les possibles solucions per resoldre el ' ReferenceError: require no està definit 'error' a node.js