使用node.js的提示输入用户?

时间:2016-12-05 18:02:26

标签: javascript node.js prompt

我正在使用node.js运行的JS项目,我无法弄清楚如何让提示正常工作以进行用户输入。我从npm安装它,按照步骤操作,我可以让程序提示用户输入,但我不能将结果存储在变量中。

我想要的是每回合提示用户进行下一步(上,下,左或右)并使用结果。我尝试制作一个全局 move 变量,并在提示部分对其进行影响,但它似乎无法正常工作。

  var Moving = function(maxMoves){

    for(var n=maxMoves; n>0;){
        var move;
        var l;
        //This would prompt for a direction (up,down,left,right)
        move = prompt();
        //And this would prompt for the number of tiles to advance;
        l = prompt();
        Direction(move,l);
        n-=l;
    }
};

3 个答案:

答案 0 :(得分:2)

当你说“从npm安装它”时我假设你指的是flatiron的prompt模块。

从他们的文档中,与大多数Node一样,看起来它暴露了一个异步函数,所以你将处理提示回调中的输入:

var prompt = require('prompt');

  //
  // Start the prompt
  //
  prompt.start();

  //
  // Get two properties from the user: username and email
  //
  prompt.get(['username', 'email'], function (err, result) {
    //
    // Log the results.
    //
    console.log('Command-line input received:');
    console.log('  username: ' + result.username);
    console.log('  email: ' + result.email);
  });

将它存储在变量中与从上面的结果对象访问它没有什么不同,但是要意识到,因为它是异步的,所以它只能在该回调中可靠。

答案 1 :(得分:0)

查询器模块具有提示功能。 使用

const { prompt } = require('inquirer');


prompt([array] | object | string ')

答案 2 :(得分:0)

使用require('prompt')require('readline')都是很好的简便方法,但是我想找到最简单的方法,并且我不在乎它是同步还是异步。发现它花了我比原本应该花费的时间更长的时间,所以也许我可以节省一些时间,如果他们在继续深入研究之前读了这篇文章。

您在这里:

# npm install readline-sync

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

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

console.log("Hi " + name + ", nice to meet you.");

免责声明:我只是在传播这个词,这是我的消息来源:

https://teamtreehouse.com/community/how-to-get-input-in-the-console-in-nodejs

How to take in text input from a keyboard and store it into a variable?