我正在使用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;
}
};
答案 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?