Wie lese ich aufeinanderfolgende Eingaben mit dem Readline-Modul von Node.js?

Wie Lese Ich Aufeinanderfolgende Eingaben Mit Dem Readline Modul Von Node Js



Der ' Zeile lesen „Das Node.js-Modul eignet sich ideal für den Einsatz in Szenarien, in denen mehr als eine aufeinanderfolgende Eingabe vom Endbenutzer erfolgen muss. Dieses Modul umschließt die Standardausgabe und -eingabe und hilft so, den Eingabestrom Zeile für Zeile zu lesen, ohne empfangene Daten zu überspringen. Mit der Ankunft des „ Zeile lesen ”-Modul wird das Verfahren zum Abrufen der Daten in Echtzeit viel einfacher und schneller.

In diesem Artikel wird das Verfahren zum Lesen aufeinanderfolgender Eingaben mit dem Readline-Modul von nodejs erläutert.

Wie lese ich aufeinanderfolgende Eingaben mit dem Readline-Modul von Node.js?

Bei den aufeinanderfolgenden Eingaben werden die Antworten für mehrere Fragen gleichzeitig und nacheinander erfasst und gespeichert. Diese aufeinanderfolgenden Fragen werden meist bei der Anmeldung zu einigen Kursen oder zum Zeitpunkt der Verifizierung gestellt. Im Folgenden werden einige Beispiele für die Implementierung des Lesens aufeinanderfolgender Eingaben mithilfe des Node.js-Readline-Moduls aufgeführt.







Beispiel 1: Lesen aufeinanderfolgender Eingaben mit dem Readline-Modul und Arrays

In diesem Beispiel werden die aufeinanderfolgenden Eingaben mit dem Befehl „ Zeile lesen ” Modul. Die Eingaben werden im Array gespeichert und von dort aus auf der Konsole angezeigt:



const Zeile lesen = erfordern ( 'Zeile lesen' ) ;

const readlineInterface = Zeile lesen. createInterface ( {

Eingang : Verfahren. stdin ,

Ausgabe : Verfahren. stdout

} )

const req0 = 'Mai! Ich kenne deinen Spitznamen?' ;

const req1 = 'Was ist dein Hobby' ;

const req2 = „Was hörst du gerne?“ ;

const req3 = 'Mai! Ich kenne dein Lieblingsgericht?‘ ;

const req4 = 'Wo wohnst du?' ;

const req5 = 'Was ist deine Lieblingsfarbe' ;

const req6 = 'Wer ist dein bester Freund' ;

const reqArr = [ req0, req1, req2, req3, req4, req5, req6 ] ;

lass res = '' ;

const reqData = X => {

Wenn ( X < reqArr. Länge ) {

readlineInterface. Frage ( reqArr [ X ] , ( reqResponse ) => {

res += ' \N ' + reqResponse ;

reqData ( X + 1 ) ;

} ) ;

} anders {

Konsole. Protokoll ( „Danke für mit mir teilen ! $ { res } ` ) ;

readlineInterface. schließen ( ) ;

}

} ;

reqData ( 0 ) ;

Nachfolgend finden Sie die Beschreibung des im obigen Codeausschnitt verwendeten Codes:



  • Beginnen Sie mit dem Importieren des „ Zeile lesen ” Modul und speichern Sie sein Objekt in einer Variablen namens „ Zeile lesen “.
  • Als nächstes erstellen Sie eine Schnittstelle mit dem Namen „ readlineInterface ” für die „ Zeile lesen ”-Objekt, das den Standard-Eingabe- und Ausgabeprozess mithilfe des „ umschließt createInterface() ' Methode. Darüber hinaus ordnet es jede Anfrage und Antwort einem einzelnen lesbaren Eingabe- und beschreibbaren Ausgabestrom zu, indem es „ Verfahren ' Eigentum.
  • Dann erstellen Sie sieben „ const Geben Sie Variablen ein, um einige Anfragen oder Fragen zu speichern, die nacheinander gestellt werden müssen. Speichern Sie diese Konstanten im einzelnen Array mit dem Namen „ reqArr “.
  • Erstellen Sie eine neue leere Variable „ res “, definieren Sie eine Pfeilfunktion mit dem Namen „ reqData ” und übergeben Sie den einzelnen Parameter von „ X “.
  • Nutzen Sie in dieser Funktion die Funktion „ Wenn ”-Anweisung, die prüft, ob der Wert des bereitgestellten Parameters kleiner als die Länge von „ ist. reqArr ' oder nicht.
  • Im Falle von wahr ist das „ Frage() Die Methode wird auf die Schnittstelle angewendet und zeigt jede Anforderung aus dem Array nacheinander über die Ausgabe an. Anschließend werden die entsprechenden bereitgestellten Werte als Argument übergeben.
  • Diese Argumente werden im bereits erstellten Array gespeichert „ res “.
  • Sobald alle Anfragen nacheinander über die Konsole angezeigt werden, wird der Zustand „ Wenn Die Aussage wird falsch und in der „ anders ” Teil, der „ res „Array wird über der Konsole angezeigt.
  • Schließlich wird auch die readline-Schnittstelle durch den Aufruf von „ geschlossen. schließen() ' Methode. Rufen Sie außerdem die „ reqData() ”-Funktion und übergeben Sie einen Anfangswert von „ 0 ” um die Frage von oben oder von der ersten im Array verfügbaren Frage zu beginnen.

Führen Sie nun diese enthaltende Datei aus, indem Sie „ Knoten ” Schlüsselwort hinter dem „ Dateiname ” am Terminal:





Knoten schreiben

Die Ausgabe zeigt, dass das Programm die aufeinanderfolgenden Eingaben gelesen und alle auf einmal zurückgegeben hat:

Beispiel 2: Lesen aufeinanderfolgender Eingaben mit dem Readline-Modul und der rekursiven Funktion

Bei der Methode wird der rekursive Ansatz mit dem „ Zeile lesen „Node.js-Modul zum Lesen der aufeinanderfolgenden Eingaben des Benutzers im Eingabestream:



const lesen = erfordern ( 'Zeile lesen' ) ;
const readlineInterface = lesen. createInterface ( {
Eingang : Verfahren. stdin ,
Ausgabe : Verfahren. stdout
} )
war reqArr = [ ]
Funktion reqData ( X ) {
Wenn ( X > 3 )
{
Var-Durchschnitt = 0
für ( j in reqArr )
{
Durchschnitt += Nummer ( reqArr [ J ] )
}
Konsole. Protokoll ( Durchschnitt / 3 ) ;
}
anders
{
readlineInterface. Frage ( „Geben Sie das ein“ + X + „Zahl von 3:“ ,    Funktion ( reqResponse ) {
reqArr. drücken ( reqResponse )
reqData ( X + 1 )
} )
}
}

reqData ( 1 ) ;

Die Erklärung für den obigen Code wird im Folgenden in Form von Aufzählungspunkten beschrieben:

  • Importieren Sie zunächst „ Zeile lesen ” in einem neu geschaffenen „ write.js ”-Datei und speichern Sie das Methodenobjekt in einer „ lesen ” variabel. Erstellen Sie eine Schnittstelle, die die „ Zeile lesen ”-Schnittstelle, die über die „ createInterface() ' Methode.
  • Erstellen Sie nun ein leeres Array mit dem Namen „ reqArr “ und definieren Sie „ reqData() ”-Funktion, die auch einen einzelnen Parameter mit dem Namen „ X “.
  • Die Funktion prüft zunächst, ob der bereitgestellte Wert größer als „ 3 ' oder nicht. Im Fall von „true“ werden die abgerufenen Werte, die im „ X Die Variable „“ wird in einem Array gespeichert und der einzelnen Variablen mit dem Namen „“ hinzugefügt. Durchschnitt “.
  • Danach wird das „ Durchschnitt „Variable wird geteilt durch“ 3 ” um den Durchschnitt zu ermitteln, da die Länge der maximal zulässigen Zahl „ 3 ” und das Ergebnis wird auf der Konsole angezeigt.
  • Im else-Teil wird das „ Frage() „Methode ist mit der Schnittstelle verbunden“ readlineInerface “. Diese Methode zeigt die Nachricht über die Konsole an und definiert eine anonyme Funktion.
  • Die Funktion akzeptiert die Benutzereingabedaten und fügt diese Daten dem Array hinzu. reqArr “. Es aktualisiert auch den Wert von „ X ” jedes Mal und übergibt den aktualisierten Wert an den „ reqData() ” Funktion. Dadurch wird sichergestellt, dass der Benutzer nur Werte unter drei eingibt, beginnend mit „ 0 “. Rufen Sie abschließend die „ reqData() ”-Funktion, um den Ausführungsprozess zu starten.

Führen Sie nun Folgendes aus, das Folgendes enthält: write.js ”-Datei durch Eingabe von „ Knoten ” Schlüsselwort hinter dem „ Dateiname ” am Terminal:

Knoten schreiben

Die Ausgabe bestätigt, dass aufeinanderfolgende Eingaben gelesen werden und ihr Durchschnitt mithilfe der Kombination aus rekursivem Ansatz und Readline-Modul über die Konsole angezeigt wird:

In dieser Anleitung wird das Verfahren zum Lesen aufeinanderfolgender Eingaben mit dem Node.js-Readline-Modul erläutert.

Abschluss

Um die aufeinanderfolgenden Eingaben mit dem Node.js-Readline-Modul zu lesen, importieren Sie zunächst dieses Modul in eine Arbeitsdatei und erstellen Sie eine Schnittstelle mit dem „ createInterface() ' Methode. Diese Schnittstelle ruft die „ Frage() ' Methode. Es sendet nacheinander Anfragen an den Benutzer und übergibt die entsprechenden Antworten jeder Anfrage an die Rückruffunktion, um einige Vorgänge entsprechend den Anforderungen anzuwenden. Sie haben den Prozess des Lesens aufeinanderfolgender Eingaben mithilfe des Readline-Moduls kennengelernt.