Wie akzeptiere ich Eingaben von der Befehlszeile in Node.js?

Wie Akzeptiere Ich Eingaben Von Der Befehlszeile In Node Js



Node.js ist eine bekannte Open-Source-freie JavaScript-Laufzeitumgebung, die es Benutzern ermöglicht, den JavaScript-Code aus einer Datei oder direkt über die Befehlszeile auszuführen. Das Ausführen eines JavaScript-Codes aus einer Datei erfordert eine externe „. js ”Dateibefehl, während die Befehlszeile den JavaScript-Code Zeile für Zeile direkt ausführt.

Manchmal muss der Benutzer die Informationen konfigurieren, während er die Node.js-Anwendung über die Befehlszeile über „ Knoten “. In einer solchen Situation muss der Benutzer diese Informationen direkt als Eingabe mit dem Ausführungsbefehl übergeben, anstatt sie in die Datei „. js ' Datei.







In diesem Artikel werden alle möglichen Methoden zum Akzeptieren von Eingaben über die Befehlszeile in Node.js erläutert.



Wie akzeptiere ich Eingaben von der Befehlszeile in Node.js?

Node.js bietet die folgenden Module zur Annahme von Eingaben über die Befehlszeile:



Beginnen wir mit dem „ Zeile lesen ” Modul.





Voraussetzungen : Bevor Sie mit der praktischen Umsetzung einer Methode fortfahren, erstellen Sie zunächst eine „. js ”Datei beliebigen Namens und schreiben Sie den gesamten Quellcode hinein. Hier haben wir ein „ Index .js“-Datei.

Methode 1: Akzeptieren Sie Eingaben von der Befehlszeile mithilfe des Moduls „readline“.

Der ' Zeile lesen Das Modul erstellt eine Schnittstelle zum Lesen der Benutzereingaben aus dem lesbaren Stream und zum Zurückgeben der Antwort als resultierende Ausgabe. Es handelt sich um ein integriertes Modul, sodass der Benutzer es direkt in die Node.js-Anwendung importieren kann, ohne es mit „ npm “.



In diesem Szenario wird es verwendet, um die Eingabe von der Befehlszeile zu übernehmen und sie dann auf dem Ausgabebildschirm auszugeben. Hier ist die praktische Umsetzung:

const Zeile lesen = erfordern ( 'Zeile lesen' )
const rl = Zeile lesen. createInterface ( {
Eingang : Verfahren. stdin ,
Ausgabe : Verfahren. stdout
} )
rl. Frage ( „Beste Plattform.“ für technischen Inhalt ? ` , Webseite => {
rl. Frage ( „Welche Kategorie möchten Sie erkunden?“ ? ` , Kategorie => {
Konsole. Protokoll ( „Website : $ { Webseite } , Kategorie : $ { Kategorie } ` )
rl. schließen ( )
} )
} )

Die Beschreibung der obigen Codezeilen lautet wie folgt:

  • Erstens, die „ erfordern ()“-Methode importiert die „ Zeile lesen ”-Modul im aktuellen Node.js-Projekt.
  • Als nächstes wird das „ createInterface ()“-Methode gibt die „ Eingabe“ und „Ausgabe“. „Streams als Objekt. Der ' Eingang „Stream verwendet das“ prozess.stdin ”-Eigenschaft zum Entgegennehmen von Eingaben vom Benutzer.
  • Der ' Ausgabe Der Stream nutzt das „ prozess.stdout ”-Eigenschaft zum Lesen des Eingabestreams und Drucken als Standardausgabe des angegebenen Eingabestreams.
  • Danach wird das „ rl.frage ()“-Methode übernimmt die Eingabe vom Benutzer. Es übergibt die Frage als erstes und die Rückruffunktion als zweites Argument. Die angegebene Callback-Pfeilfunktion ruft die vom Benutzer eingegebenen Werte ab.
  • In der Definition des gegebenen „ Webseite ', und das ' Kategorie ” Callback-Pfeilfunktion, die „ console.log ()“ wird zur Anzeige der eingegebenen Werte verwendet.
  • Schließlich ist das „ rl.schließen ()“-Methode schließt die oben erstellte Schnittstelle.

Ausgabe

Initiieren Sie die „ Index .js“-Datei durch Ausführen des bereitgestellten Befehls:

Knotenindex. js

Die folgende Ausgabe zeigt eine Readline-Schnittstelle, die die Benutzereingaben von der Befehlszeile entgegennimmt und dann den eingegebenen Wert als Standardausgabe anzeigt:

Methode 2: Akzeptieren Sie Eingaben von der Befehlszeile mit dem Modul „readline-sync“.

Der ' readline-sync „ist das Drittanbietermodul, das synchron die Informationen zu hartcodierten Fragen abruft und die entsprechenden Antworten für zukünftige Vorgänge speichert. Es fungiert als Kommunikation zwischen Client und Server über die Befehlszeile.

Der Hauptunterschied zwischen asynchronen und synchronen Modulen besteht darin, dass „ asynchron „Blockiert die Ausführung des Quellcodes, bis die angegebene Aufgabe nicht mehr ausgeführt wird, während die synchronen Module den Code Zeile für Zeile nacheinander ausführen.

Installieren Sie das Modul „readline-sync“.

Der „readline-sync“ Das Modul ist kein integriertes Modul und muss daher manuell installiert werden, indem Sie den folgenden Befehl ausführen:

npm install readline - synchronisieren

Die Ausgabe zeigt, dass das Modul readline-sync zum aktuellen Node.js-Projekt hinzugefügt wurde:

Benutzen Sie nun die „ readline-sync ”-Modul praktisch durch Befolgen des angegebenen Codeausschnitts:

War readlineSync = erfordern ( 'readline-sync' ) ;
War empName = readlineSync. Frage ( 'Mitarbeitername: ' ) ;
War jd = readlineSync. Frage ( 'Arbeitsbeschreibung: ' ) ;
War Unternehmen = readlineSync. Frage ( 'Unternehmen: ' , {
} ) ;
Konsole. Protokoll ( empName + 'funktioniert als ' + jd + ' In ' + Unternehmen ) ;

Die Erklärung des obigen Codes lautet wie folgt:

  • Zuerst die ' readline-sync „Modul wird in die Datei importiert und sein Objekt wird in einer neuen Variablen gespeichert“ readlineSync “.
  • Als nächstes wird die Abfrage mit Hilfe des „ Frage ()“-Methode durch Angabe als Argument.
  • Für die nächsten Fragen wird nach dem gleichen Verfahren vorgegangen.
  • Danach wird das „ console.log ()“-Methode wird verwendet, um die eingegebenen Werte zusammen mit der in Anführungszeichen gesetzten Zeichenfolge anzuzeigen.

Ausgabe

Führen Sie „ Index .js“-Datei:

Knotenindex. js

Die Ausgabe zeigt, dass die Eingaben der Benutzer synchron aufgenommen und mithilfe der Funktion „ readline-sync ” Modul:

Methode 3: Akzeptieren Sie Eingaben von der Befehlszeile mit dem Modul „prompt“.

Der ' prompt „ ist ein asynchrones Modul, das eine Eingabeaufforderungsfunktion erstellt, um die Benutzereingabe als Variablenwert zu speichern und sie dann als resultierende Ausgabe abzurufen. Der lesbare und beschreibbare Stream muss nicht explizit konfiguriert werden, weshalb es im Vergleich zum „ Zeile lesen ” Modul.

Installieren Sie das „Prompt“-Modul

Der ' prompt „ ist ebenfalls ein Modul eines Drittanbieters, das mit Hilfe von „ einfach installiert werden kann. npm ' auf diese Weise:

npm-Installationsaufforderung -- speichern

Im obigen Befehl ist das „ -speichern ”-Flag fügt das „ prompt ” Modul zum „ package.json ' Datei.

Es kann analysiert werden, dass die „ prompt ” wurde dem aktuellen Node.js-Projekt hinzugefügt:

Nutzen Sie nun das installierte „ prompt ”-Modul praktisch mit Hilfe des folgenden Code-Snippets:

const prompt = erfordern ( 'prompt' )
prompt. Start ( )
prompt. erhalten ( [ 'Autorenname' , 'Kategorie' ] , ( irren , Ergebnis ) => {
Wenn ( irren ) {
werfen irren

} anders {
Konsole. Protokoll ( `$ { Ergebnis. Autorenname } funktioniert auf $ { Ergebnis. Kategorie } ` )

}
} )

Im oben genannten Codeblock:

  • Der ' erfordern ()“-Methode importiert die „ prompt ”-Modul in das Projekt einbinden.
  • Der ' Start ()“-Methode startet die Eingabeaufforderung.
  • Der ' erhalten ()“-Methode übernimmt die Eingabe des Benutzers über die Befehlszeile. Es gibt die Eigenschaftsnamen und die Callback-Pfeilfunktion als ersten und zweiten Parameter an.
  • Die Callback-Funktion mit „ irren ' Und ' Ergebnis „Parameter definieren einen“ ansonsten ' Stellungnahme.
  • Tritt ein Fehler jeglicher Art auf, erscheint die Meldung „ Wenn ”-Block wird diesen Fehler auslösen, andernfalls wird der „ anders Der Block zeigt die Werte der angegebenen Eigenschaften als Ausgabe an.

Ausgabe

Führen Sie „ Index .js“-Datei:

Knotenindex. js

Die folgende Ausgabe übernimmt die Benutzereingaben basierend auf den angegebenen Eigenschaften und ruft dann deren Werte als Ausgabe ab:

Methode 4: Akzeptieren Sie Eingaben von der Befehlszeile mithilfe des Moduls „inquirer“.

In Node.js ist das „ Fragesteller „ist eine einfache Möglichkeit, die Eingabe über die Befehlszeile zu übernehmen. Es verfügt über mehrere nützliche Methoden, um Eingaben von Benutzern entgegenzunehmen und die Ausgabe dann mithilfe des „ Antwort ” Objekt und das „. Dann ()“ integrierte Methode.

Es ist nützlich, um dem Benutzer über die Befehlszeile verschiedene Arten von Fragen zu stellen, z. B. Fragen zu Listen, Optionen, Eingaben, Kontrollkästchen und vielem mehr. Es bietet eine praktische Möglichkeit, die Befehlszeilenschnittstelle für abfragebasierte Aufgaben interaktiv zu gestalten.

Folgen Sie der ausführlichen Anleitung unter „ Nehmen Sie Eingaben von der Befehlszeile mit Node.js Inquirer entgegen ” zur praktischen Demonstration.

Tipp: Wie übergebe ich Argumente über die Befehlszeile in Node?

Der Benutzer kann Argumente auch über die Befehlszeile übergeben. Zu diesem Zweck ist die „ Prozess.argv „Eigenschaft genutzt werden kann. Der ' argv „ ist die integrierte Eigenschaft des „process“-Moduls, die verwendet wird, um die Argumente von der Befehlszeile zu übergeben, während die Node.js-Anwendung mit „ ausgeführt wird. Knoten ' Befehl.

Folgen Sie der ausführlichen Anleitung unter „ Übergeben Sie Argumente über die Befehlszeile in Node.js ” zur praktischen Demonstration.

Dabei geht es darum, Eingaben von der Befehlszeile in Node.js zu akzeptieren.

Abschluss

Um die Eingabe von der Befehlszeile zu akzeptieren, verwenden Sie das asynchrone „ Zeile lesen “ oder das synchrone „ readline-sync ” Modul. Darüber hinaus kann es auch über die „ prompt ' oder der ' Fragesteller ” Modul. Mit Ausnahme der ' redline-sync ”-Modul, alle übrigen Module sind asynchron. In diesem Artikel wurden alle möglichen Methoden zum Akzeptieren von Eingaben über die Befehlszeile in Node.js besprochen.