Wie erhalte ich Konsoleneingaben in Spidermonkey JavaScript?

Lesezeit: 3 Minuten

Benutzer-Avatar
camel_space

Ich verwende derzeit Spidermonkey, um meinen JavaScript-Code auszuführen. Ich frage mich, ob es eine Funktion gibt, um Eingaben von der Konsole zu erhalten, ähnlich wie Python dies tut:

var = raw_input()  

Oder in C++:

std::cin >> var;

Ich habe mich umgesehen und alles, was ich bisher gefunden habe, ist, wie man Eingaben aus dem Browser mit dem erhält prompt() und confirm() Funktionen.

Benutzer-Avatar
MooGoo

Gute alte readline();.

Sehen MDN (Archiv).

  • Ich kann es anscheinend nicht verwenden, wenn ich node.js verwende. Irgendeine Idee?

    – Eran Otzap

    10. Dezember 2014 um 23:05 Uhr

  • Siehe die Antwort auf diese Frage: stackoverflow.com/questions/26683734/…

    – Deltastrahl

    29. Januar 2017 um 12:24 Uhr

In einfachem JavaScript verwenden Sie einfach response = readline() nach dem Drucken einer Eingabeaufforderung.

In Node.js müssen Sie die verwenden Readline-Modul: const readline = require('readline')

  • ` var x = readline(); ^ TypeError: readline ist keine Funktion ` nach dem Hinzufügen von require am Anfang der Datei

    – fIwJlxSzAPHEZIl

    13. November 2017 um 23:20 Uhr


  • Hatte auch das gleiche Problem.

    – Devin Haslam

    4. Januar 2018 um 23:15 Uhr

  • Das ist seltsamer denn je.

    – Machado

    26. September 2018 um 3:27 Uhr

  • readline funktioniert nicht gleich in node. Sie brauchen so etwas: const readline = require(‘readline’).createInterface({ input: process.stdin, output: process.stdout }) readline.question(“what’s your name?”, name => { console.log (Hello ${name}); readline.close(); });

    – kDar

    6. Januar 2020 um 15:36 Uhr

  • @kDar Ich mache lieber name => { readline.close(); console.log (Name); } In meinem Fall zeigt Ihre Version keine Eingabe während der Eingabe. Trotzdem danke für deinen Kommentar

    – Marco M. von Hagen

    18. Juli 2020 um 15:43 Uhr

Benutzer-Avatar
Keywan

Wie du erwähnt hast, prompt funktioniert für Browser bis zurück zum IE:

var answer = prompt('question', 'defaultAnswer');

Eingabeaufforderung im IE

Für Node.js > v7.6 können Sie verwenden console-read-writedas ein Wrapper um die Low-Level-Datei ist readline Modul:

const io = require('console-read-write');

async function main() {
  // Simple readline scenario
  io.write('I will echo whatever you write!');
  io.write(await io.read());

  // Simple question scenario
  io.write(`hello ${await io.ask('Who are you?')}!`);

  // Since you are not blocking the IO, you can go wild with while loops!
  let saidHi = false;
  while (!saidHi) {
    io.write('Say hi or I will repeat...');
    saidHi = await io.read() === 'hi';
  }

  io.write('Thanks! Now you may leave.');
}

main();
// I will echo whatever you write!
// > ok
// ok
// Who are you? someone
// hello someone!
// Say hi or I will repeat...
// > no
// Say hi or I will repeat...
// > ok
// Say hi or I will repeat...
// > hi
// Thanks! Now you may leave.

Offenlegung Ich bin Autor und Betreuer von console-read-write

Für SpiderMonkey ganz einfach readline wie von @MooGoo und @Zaz vorgeschlagen.

Benutzer-Avatar
ArcherL

Sie können so etwas versuchen process.argvdas heißt, wenn Sie verwenden node.js um das Programm auszuführen.

console.log(process.argv) => Würde ein Array drucken, das enthält

[                                                                                                                                                                                          
  '/usr/bin/node',                                                                                                                                                                         
  '/home/user/path/filename.js',                                                                                                                                            
  'your_input'                                                                                                                                                                                   
]

Sie erhalten die vom Benutzer bereitgestellte Eingabe über den Array-Index, dh console.log(process.argv[3]) Dies sollte Ihnen die Eingabe liefern, die Sie speichern können.

Beispiel:

var somevariable = process.argv[3]; // input one
var somevariable2 = process.argv[4]; // input two

console.log(somevariable);
console.log(somevariable2);

Wenn Sie ein Befehlszeilenprogramm erstellen, ist das npm-Paket Jahre wäre echt hilfreich.

Node.js ist integriert Zeile lesen Modul.

ein Beispiel:

const readline = require('readline')
const rl = readline.createInterface({
   input: process.stdin,
   output: process.stdout,
});
rl.question(`Are you sure? (yes/no): `, async answer => {
   if (answer.toLocaleLowerCase() === 'yes') {
     console.log('processing...');
   }
   else {
     console.log('aborting...');
   }
});

1092810cookie-checkWie erhalte ich Konsoleneingaben in Spidermonkey JavaScript?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy