如何在node.js中接收用户的控制台输入?

8

我尝试将Cloud9作为我的全职IDE,因为它似乎是Chromebook上最好的选择。然而,我正在尝试制作一个需要用户输入文本的基本程序,但是我学到的代码var x = prompt("y");在node.js中似乎不起作用。

我该如何在node.js中获取用户输入并将其存储为变量?

2个回答

12
var readline = require('readline');

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

rl.question("What do you think of node.js? ", function(answer) {
  // TODO: Log the answer in a database
  console.log("Thank you for your valuable feedback:", answer);

  rl.close();
});

从这里获取:http://nodejs.org/api/readline.html#readline_readline

更具体地说,将这段代码放入 app.js 文件中,然后运行以下命令。

node app.js

并回答上面的问题。

发生了什么?require语句暴露了“readline”模块的公共方法之一-“createInterface”方法。此方法将输入和输出作为选项进行设置。从看起来,可以指定不同的输入和输出源,但在这种情况下,您正在使用全局节点“process”变量的“stdin”和“stdout”属性。它们指定了从控制台输入和输出。接下来,调用读取行对象的question方法,并指定回调函数以将用户输入显示回用户。最后调用readline的close方法将控制权释放回调用方。


1
重要提示:此方法是异步的。因此,所有依赖于输入参数的内容必须在函数(answer){...}内指定。 - Eggon

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接