Nodejs:如何从键盘输入文本输入并将其存储到javascript中的变量中?

时间:2013-10-31 23:56:32

标签: javascript node.js input keyboard actionlistener

我只想简单地从键盘上读取文本并将其存储到变量中。所以:

var color = 'blue'

我希望用户通过键盘提供颜色输入。谢谢!

7 个答案:

答案 0 :(得分:8)

如果您不需要异步,我建议使用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.");

答案 1 :(得分:5)

Node有一个内置的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();
});

答案 2 :(得分:2)

在NodeJS平台上有三种解决方案

  1. 对于异步用例需求,请使用节点API:readline
  2. 喜欢:(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('嗨' +用户名+'!');

    2. 对于所有一般用例需求,请使用** NPM包:global package:process:** Like:(https://nodejs.org/api/process.html

    3. 将输入作为argv:

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

答案 3 :(得分:1)

您可以使用模块“readline”:http://nodejs.org/api/readline.html - 手册中的第一个示例演示了如何执行您要求的操作。

答案 4 :(得分:1)

您可以使用stdio。它很简单如下:

var stdio = require('stdio');
stdio.question('What is your keyboard color?', function (err, color) {
    // Do whatever you want with "color"
});

如果您决定只接受一些预定义的答案,则此模块包括重试:

var stdio = require('stdio');
stdio.question('What is your keyboard color?', ['red', 'blue', 'orange'], function (err, color) {
    // Do whatever you want with "color"
});

看一下stdio,它包含可能对您有用的其他功能(例如命令行参数解析,标准输入读取一次或按行...)。我是stdio创作者,我刚刚发布了0.2.0版本。 : - )

NPM

答案 5 :(得分:0)

我们也可以使用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);
}

答案 6 :(得分:-1)

如果我了解你的需要,那应该这样做:

HTML:

<input id="userInput" onChange="setValue()" onBlur="setValue()">

的javascript:

function setValue(){
   color=document.getElementById("userInput").value;
   //do something with color
}

如果您不需要在每次输入更改时都执行某些操作,只要您想要使用'color'执行某些操作,就可以获得输入:

HTML:

<input id="userInput">

的javascript:

color=document.getElementById("userInput").value;