web-dev-qa-db-ja.com

キーボードからのテキスト入力を取り込んで変数に保存するにはどうすればよいですか?

キーボードからテキストを読み取って変数に格納する簡単なものが欲しいのですが。だから:

var color = 'blue'

ユーザーにキーボードから色の入力を提供してもらいたい。ありがとうございました!

14
Zemprof

非同期のものが必要ない場合は、readline-syncモジュールもお勧めします。

# npm install readline-sync

const readline = require('readline-sync');

let name = readline.question("What is your name?");

console.log("Hi " + name + ", Nice to meet you.");
13
Harlin

ノードにはこのためのAPIが組み込まれています...

const readline = require('readline');

const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

rl.question('Please enter a color? ', (value) => {
    let color = value
    console.log(`You entered ${color}`);
    rl.close();
});
8
Olutobi Adeyemi

NodeJSプラットフォームには3つの解決策があります

  1. 非同期のユースケースが必要な場合は、ノードAPIを使用します:readline

いいね:( https://nodejs.org/api/readline.html

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question('What do you think of Node.js? ', (answer) => {
  // TODO: Log the answer in a database
  console.log(`Thank you for your valuable feedback: ${answer}`);

  rl.close();
});
  1. 同期ユースケースの必要性については、NPMパッケージ:readline-syncのように使用します:( https://www.npmjs.com/package/ readline-sync

    var readlineSync = require( 'readline-sync');

    //ユーザーの応答を待ちます。 var userName = readlineSync.question( 'あなたの名前を教えてもらえますか?'); console.log( 'Hi' + userName + '!');

  2. すべての一般的なユースケースのニーズには、** NPMパッケージ:グローバルパッケージ:プロセス:**のように:( https://nodejs.org/api/process.html )を使用します。

入力をargvとして取得する場合:

// print process.argv
process.argv.forEach((val, index) => 
{
  console.log(`${index}: ${val}`);
});
4
ArunDhwaj IIITH

NodeJSコアの標準入力機能を使用することもできます。 ctrl+D標準入力データの読み取りを終了します。

process.stdin.resume();
process.stdin.setEncoding("utf-8");
var input_data = "";

process.stdin.on("data", function(input) {
  input_data += input; // Reading input from STDIN
  if (input === "exit\n") {
    process.exit();
  }
});

process.stdin.on("end", function() {
  main(input_data);
});

function main(input) {
  process.stdout.write(input);
}
2
Sagar Gavhane

これには stdio を使用できます。それは次のように簡単です:

import { ask } from 'stdio';
const color = await ask('What is your keyboard color?');

このモジュールには、事前定義された回答のみを受け入れることにした場合の再試行が含まれます。

import { ask } from 'stdio';
const color = await ask('What is your keyboard color?', { options: ['red', 'blue', 'orange'], maxRetries: 3 });

stdio を見てください。これには、便利な他の機能が含まれています(コマンドライン引数の解析、標準入力の一括読み取り、または行ごとの読み取りなど)。

2
sgmonda

これにはモジュール「readline」を使用できます。 http://nodejs.org/api/readline.html -マニュアルの最初の例は、要求したことを実行する方法を示しています。

1
Alex Netkachov