Verwendung der Node.js REPL
Der Befehl node
wird verwendet, um unsere Node.js-Skripte auszuführen:
node script.js
Wenn wir den Befehl node
ohne ein auszuführendes Skript oder ohne Argumente ausführen, starten wir eine REPL-Sitzung:
node
HINWEIS
REPL steht für Read Evaluate Print Loop (Lesen, Auswerten, Ausgeben-Schleife) und ist eine Programmiersprachenumgebung (im Grunde ein Konsolenfenster), die einzelne Ausdrücke als Benutzereingabe entgegennimmt und das Ergebnis nach der Ausführung an die Konsole zurückgibt. Die REPL-Sitzung bietet eine bequeme Möglichkeit, schnell einfachen JavaScript-Code zu testen.
Wenn Sie es jetzt in Ihrem Terminal versuchen, passiert Folgendes:
> node
>
Der Befehl bleibt im Leerlauf und wartet darauf, dass wir etwas eingeben.
TIP
Wenn Sie sich nicht sicher sind, wie Sie Ihr Terminal öffnen, suchen Sie bei Google nach "So öffnen Sie das Terminal unter Ihrem Betriebssystem".
Die REPL wartet darauf, dass wir etwas JavaScript-Code eingeben, um genauer zu sein.
Beginnen wir einfach und geben Sie Folgendes ein:
> console.log('test')
test
undefined
>
Der erste Wert, test
, ist die Ausgabe, die wir der Konsole zum Drucken mitgeteilt haben, dann erhalten wir undefined
, was der Rückgabewert der Ausführung von console.log()
ist. Node hat diese Codezeile gelesen, ausgewertet, das Ergebnis ausgegeben und ist dann zurückgekehrt, um auf weitere Codezeilen zu warten. Node durchläuft diese drei Schritte für jedes Codefragment, das wir in der REPL ausführen, bis wir die Sitzung beenden. Daher hat die REPL ihren Namen erhalten.
Node gibt automatisch das Ergebnis jeder JavaScript-Codezeile aus, ohne dass wir es anweisen müssen, dies zu tun. Geben Sie beispielsweise die folgende Zeile ein und drücken Sie die Eingabetaste:
> 5==5
false
>
Beachten Sie den Unterschied in den Ausgaben der beiden obigen Zeilen. Die Node REPL hat undefined
nach der Ausführung von console.log()
ausgegeben, während sie andererseits nur das Ergebnis von 5== '5'
ausgegeben hat. Sie müssen bedenken, dass das erste nur eine Anweisung in JavaScript ist, und das zweite ein Ausdruck.
In einigen Fällen benötigt der Code, den Sie testen möchten, möglicherweise mehrere Zeilen. Nehmen wir zum Beispiel an, Sie möchten eine Funktion definieren, die eine Zufallszahl generiert. Geben Sie in der REPL-Sitzung die folgende Zeile ein und drücken Sie die Eingabetaste:
function generateRandom()
...
Die Node REPL ist intelligent genug, um zu erkennen, dass Sie mit dem Schreiben Ihres Codes noch nicht fertig sind, und wechselt in einen mehrzeiligen Modus, damit Sie mehr Code eingeben können. Beenden Sie nun Ihre Funktionsdefinition und drücken Sie die Eingabetaste:
function generateRandom()
...return Math.random()
Die spezielle Variable:
Wenn Sie nach etwas Code _
eingeben, wird das Ergebnis der letzten Operation ausgegeben.
Die Aufwärtspfeiltaste:
Wenn Sie die Aufwärtspfeiltaste drücken, erhalten Sie Zugriff auf die Historie der vorherigen Codezeilen, die in der aktuellen und sogar in vorherigen REPL-Sitzungen ausgeführt wurden.
Punktbefehle
Die REPL hat einige spezielle Befehle, die alle mit einem Punkt .
beginnen. Sie sind:
.help
: zeigt die Hilfe zu den Punktbefehlen an..editor
: aktiviert den Editor-Modus, um problemlos mehrzeiligen JavaScript-Code zu schreiben. Wenn Sie sich in diesem Modus befinden, geben SieStrg-D
ein, um den von Ihnen geschriebenen Code auszuführen..break
: Wenn Sie einen mehrzeiligen Ausdruck eingeben, bricht der Befehl.break
die weitere Eingabe ab. Das Gleiche wie das Drücken vonStrg-C
..clear
: setzt den REPL-Kontext auf ein leeres Objekt zurück und löscht alle mehrzeiligen Ausdrücke, die gerade eingegeben werden..load
: lädt eine JavaScript-Datei relativ zum aktuellen Arbeitsverzeichnis..save
: speichert alles, was Sie in der REPL-Sitzung eingegeben haben, in einer Datei (geben Sie den Dateinamen an)..exit
: beendet die REPL (dasselbe wie zweimaliges Drücken vonStrg-C
).
Die REPL erkennt, wenn Sie eine mehrzeilige Anweisung eingeben, ohne dass .editor
aufgerufen werden muss. Wenn Sie beispielsweise mit der Eingabe einer Iteration wie dieser beginnen:
[1, 2,3].foxEach(num=>{
und Sie die Eingabetaste drücken, geht die REPL in eine neue Zeile, die mit 3 Punkten beginnt und anzeigt, dass Sie nun mit diesem Block weiterarbeiten können.
1... console.log (num)
2...}
Wenn Sie am Ende einer Zeile .break
eingeben, wird der Mehrzeilenmodus beendet und die Anweisung nicht ausgeführt.
REPL aus JavaScript-Datei ausführen
Wir können die REPL in einer JavaScript-Datei mit repl
importieren.
const repl = require('node:repl')
Mit der Variable repl
können wir verschiedene Operationen durchführen. Um die REPL-Eingabeaufforderung zu starten, geben Sie die folgende Zeile ein:
repl.start()
Führen Sie die Datei in der Befehlszeile aus.
node repl.js
Sie können eine Zeichenkette übergeben, die beim Start der REPL angezeigt wird. Der Standardwert ist '>' (mit einem nachfolgenden Leerzeichen), aber wir können eine benutzerdefinierte Eingabeaufforderung definieren.
// Eine Unix-artige Eingabeaufforderung
const local = repl.start('$ ')
Sie können beim Beenden der REPL eine Meldung anzeigen.
local.on('exit', () => {
console.log('repl wird beendet')
process.exit()
})
Weitere Informationen zum REPL-Modul finden Sie in der REPL-Dokumentation.