如何从node.js中的用户获取控制台输入?

时间:2014-10-31 21:35:22

标签: javascript node.js cloud9-ide

我尝试转移到cloud9作为全时IDE,因为它似乎是我的chromebook上的最佳选择。但是,我试图创建一个需要用户输入文本的基本程序,但我所教的代码var x = prompt("y");似乎在node.js中不起作用。

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

2 个答案:

答案 0 :(得分:10)

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'方法。此方法将输入和输出作为选项。

从它的外观来看,可以指定不同的输入和输出源,但在这种情况下,您正在使用' stdin'和' stdout'全局节点'进程的属性'变量。这些指定输入和输出控制台。

接下来,您调用已创建的readline对象的问题方法,并指定回调函数以将用户输入显示给用户。 '关闭'在readline上调用以将控制权释放回调用者。

答案 1 :(得分:0)

看看Reading value from console, interactively

您只能在浏览器中使用JavaScript的BOM(浏览器对象模型)功能,而不能在Node JS中使用。