Wie behebe ich den Fehler „Referenzfehler erforderlich ist nicht definiert“?

Wie Behebe Ich Den Fehler Referenzfehler Erforderlich Ist Nicht Definiert



Node.js ist nichts für sich, seine Existenz hängt von Modulen und Methoden ab, die von jedem Modul bereitgestellt werden. Um mit diesen Modulen arbeiten zu können, muss der Entwickler sie zunächst installieren und dann in die aktuell arbeitende Datei importieren. Zum Importieren von Modulen gibt es zwei Möglichkeiten, die speziell mit der Version von JavaScript verknüpft sind, die der Entwickler gerade verwendet oder auf der der Anwendungseigentümer aufbauen möchte. Beim Importieren besteht die Möglichkeit, dass mehrere Fehler auftreten, und zwar der beliebteste und häufigste Fehler im Zusammenhang mit „ erfordern() Die Methode wird beschrieben und gelöst.

In diesem Handbuch wird das Verfahren zur Behebung des Fehlers „ReferenceError: require ist nicht definiert“ erläutert.

Wie behebe ich den Fehler „ReferenceError: require ist nicht definiert“?

Um externe oder integrierte Module in das Projekt zu importieren, werden zwei Ansätze verwendet: Diese verwenden „ erfordern() „Methode“ oder „ importieren ' Stichwort. Das erwähnte „ ReferenceError: require ist nicht definiert ” wird angezeigt, wenn ein Benutzer versucht, das „ erfordern() ”-Methode innerhalb der „ ES-Modul ' Umfang. Der besprochene Fehler erscheint über der Konsole in node.js wie folgt, wenn der unten angegebene Code ausgeführt wird:









Die Gründe für das Auftreten des Fehlers „Resolve „ReferenceError: require ist nicht definiert““ und die entsprechenden Lösungen werden in den folgenden Abschnitten erläutert.



Grund 1: Der Anwendungstyp ist auf Modul eingestellt

Wenn Ihre Anwendung den genannten Fehler anzeigt, ist die Änderung des „ package.json ' Datei. Suchen Sie nach dem Schlüssel/Wert-Paar mit dem „ Schlüssel ' von ' Typ ” und der zugewiesene Wert von „ Modul “. Dadurch wird die Umgebung der gesamten Anwendung modular, was die Verwendung alter „ CommonJS „Module und Methoden. Die visuelle Darstellung dieses Schlüssel/Wert-Paares sieht folgendermaßen aus:





'Typ' : 'Modul' ,

Lösung: Entfernen Sie den „Type“-Schlüssel

Die Lösung ist die Entfernung des „ Typ „Schlüssel und zugewiesener Wert aus dem node.js-Projekt“ package.json ' Datei. Das Entfernen aus der Datei „package.json“ nutzt den ES6-Modulbereich aus und macht die Methode „require()“ funktionsfähig. Wenn nun derselbe Code erneut ausgeführt wird, tritt kein Fehler mehr auf.



Grund 2: Arbeiten in „.mjs Datei

Der ' .mjs „ist eine Modul-JavaScript-Quellcodedatei. Es enthält Code innerhalb der Modulumgebung, der nicht in „ CommonJS ” wodurch der Code zur besseren Verwaltbarkeit in mehrere Dateien aufgeteilt wird. Der ' erfordern() Die Methode liegt unter der „ CommonJS “. Aus diesem Grund wird die Methode „require“ undefiniert, wenn sie innerhalb der „require“-Methode verwendet wird. .mjs ” Dateierweiterung und führt zum Auftreten des genannten Fehlers:

Lösung: Konvertieren Sie die Dateierweiterung in „.cjs“

Genau wie modularer JavaScript-Quellcode hat die Dateierweiterung „ .mjs ' ist verfügbar. Die Erweiterung von „ .cjs ” ist vorgesehen für „ CommonJS „Module und Eigenschaften. Diese Datei akzeptiert nicht „ modular „Pakete wie“ importieren ”funktioniert aber gut mit ES5-Versionen. In unserem Fall löst die Änderung der Dateierweiterung das Problem im Zusammenhang mit „ erfordern() ' Methode:

Alternativer Ansatz: Verwenden Sie die ES6-Anweisung „Import/Export“.

Der ' erfordern() Die Methode wird definiert und bereitgestellt durch die „ CommonJs ” und ist bis zur JavaScript-Version von ES5 (ECMAScript 5) akzeptabel. Es wurde 2009 veröffentlicht und ist mittlerweile veraltet, da viele aktuelle Module es nicht unterstützen oder in ES5 nicht richtig funktionieren. Genau wie das „ erfordern() „Die Methode wird jetzt durch eine optimiertere und einfachere ersetzt“ importieren ” Aussagen. Die Arbeitsweise beider Einheiten ist gleich, aber „Import“ hat aufgrund der neuesten Technologie und der damit verbundenen größeren Benutzerfreundlichkeit einen Vorteil.

Für Standard- oder externe Module

In der folgenden Demonstration wird die „import“-Anweisung als Alternative zur „require()“-Methode verwendet, um das Standard- oder Drittanbietermodul zu importieren:

importieren readlineObj aus 'Zeile lesen' ;

Konsole. Protokoll ( readlineObj ) ;

Nach der Kompilierung des genannten Codes muss die gleiche Aufgabe erledigt werden, die „ erfordern() ”-Methode wird durchgeführt und die „ ReferenceError: require ist nicht definiert ” wird ebenfalls nicht angezeigt:

Für kundenspezifische Module

Der ' importieren Die Anweisung „“ wird auch verwendet, um die benutzerdefinierten Build-Module oder Funktionen aus anderen Dateien zu „importieren“, die sich im gleichen oder in anderen Verzeichnissen befinden. Die Funktionen oder Variablen aus anderen Dateien werden mit der Funktion „ Export ' Stichwort. Besuchen Sie beispielsweise den folgenden Codeausschnitt, in dem eine einzelne Funktion und eine Zufallsvariable aus einer anderen Datei importiert werden:

app.js

const exportVariable = „Diese Anleitung wird von Linuxhint bereitgestellt!“ ;

const exportFunktion = ( ) => {

Konsole. Protokoll ( exportVariable ) ;

} ;

Export Standard exportFunktion ;

Export {

exportVariable

} ;

Die Erklärung des obigen Codeblocks lautet wie folgt:

  • Zuerst die Zufallsvariable mit dem Namen „ exportVariable ” ist definiert und die Pfeilfunktion „ exportFunction() ” wird erstellt, das die erstellte „exportVariable“ über die Konsole ausgibt.
  • Die Schlüsselwörter von „ Exportstandard ' Und ' Export ” werden verwendet, um die „ exportFunction() ' Und ' exportVariable ” Entitäten aus der Datei.
  • Wenn diese Datei importiert wird, stehen die exportierten Funktionen und Variablen dort zur Verwendung zur Verfügung.

index.js

„index.js“ ist unsere Sekundärdatei, in die die exportierte Funktion und Variable importiert und verwendet wird. Sie enthält den unten angegebenen Code:

importieren exportFunktion, { exportVariable } aus './app.js' ;

exportFunktion ( ) ;

Konsole. Protokoll ( exportVariable ) ;

Im obigen Code ist das „ importieren ”-Anweisung wird verwendet, um die Standardeinstellung zu importieren. exportFunction() ” und die Variable „ exportVariable ' von dem ' app.js ' Datei.

Anschließend werden beide importierten Entitäten aufgerufen und zu Überprüfungszwecken über die Konsole angezeigt.

Führen Sie nun den Hauptbefehl „ index.js ”-Datei mit dem unten angegebenen Befehl:

Knotenindex. js

Die generierte Ausgabe zeigt, dass importierte Elemente ordnungsgemäß funktionieren, ohne dass „ ReferenceError: require ist nicht definiert ' Fehler:

Es geht darum, den angegebenen Fehler zu beheben.

Abschluss

Um das „ ReferenceError: require ist nicht definiert ” Fehler, entfernen Sie das „ Typ ” Schlüssel mit dem Wert „ Modul ' von dem ' package.json ” oder ändern Sie die aktuell funktionierende Dateierweiterung in „ .cjs “. Wenn Sie in der modularen ES6-Version arbeiten möchten, verwenden Sie nicht die „ erfordern() ”-Methode verwenden Sie die „ importieren ” Aussagen Ansatz. In diesem Handbuch wurden die möglichen Korrekturen zur Behebung des Problems „ ReferenceError: require ist nicht definiert „Fehler“ in node.js