Einlesen von der Kommandozeile mit Node

Damit du ein Programm schreiben kannst, das nicht nur Textausgaben macht, sondern auch Benutzereingaben von der Kommandozeile lesen kann musst du zusätzlich eine Datei mit dem Namen package.json erstellen und in denselben Ordner speichern, wo auch dein JavaScript Programm liegt. Wenn du keine Benutzereingaben liest, brauchst du auch diese Datei nicht.

Als Inhalt der Datei package.json musst du folgenden Text schreiben:

{
	"type": "module"
}

Hier ein kleines Beispielprogramm, das eine Benutzereingabe von der Kommandozeile liest und wieder ausgibt.

// Load dependencies from other module.
// You only need to do this once at the beginning of your program.
import * as readline from "node:readline/promises";
import { stdin as input, stdout as output } from "node:process";
const rl = readline.createInterface({ input, output });
 
// Read user input
let answer = await rl.question("Please enter some text: ");
 
// Write input to console
console.log("You entered: " + answer);
 
// Read another input
answer = await rl.question("Please enter some text: ");
 
// Write second input to console
console.log("You entered: " + answer);
 
// At the end of your program you need to close the input reader.
// Otherwise your program will not finish
rl.close();

Das Programm kannst du wieder ganz normal mit dem Befehl node dateiname starten.

Falls du vergessen hast rl.close() am Ende aufzurufen wird dein Programm nicht beendet. Du kannst ein laufendes Programm in der Kommandozeile aber jederzeit durch drücken von Strg + C beenden.