Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从node.js中的用户获取控制台输入?_Javascript_Node.js_Cloud9 Ide - Fatal编程技术网

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

Javascript 如何从node.js中的用户获取控制台输入?,javascript,node.js,cloud9-ide,Javascript,Node.js,Cloud9 Ide,我尝试将cloud9作为全职IDE,因为它似乎是我chromebook上的最佳选择。然而,我正在尝试制作一个需要用户输入文本的基本程序,但是我所学到的代码是var x=prompt(“y”)在node.js中似乎不起作用 如何获取用户输入并将其作为变量存储在node.js中?请查看 只能在浏览器中使用JavaScript的BOM(浏览器对象模型)功能,而不能在节点JS中使用 var readline = require('readline'); var rl = readline.create

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

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

请查看

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

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();
});
从这里开始

更具体地说,将此代码填充到app.js文件中,然后运行以下命令

node app.js
然后回答上面的问题

会发生什么?require语句公开了“readline”模块的公共方法,其中一个是“createInterface”方法。此方法将输入和输出作为选项

从外观上看,可以指定不同的输入和输出源,但在本例中,您使用的是全局节点“process”变量的“stdin”和“stdout”属性。它们指定控制台的输入和输出


接下来,调用已创建的readline对象的question方法,并指定一个回调函数以将用户输入显示回用户在readline上调用“close”,将控件释放回调用者。

重要说明:此方法是异步的。因此,依赖于输入参数的所有内容都必须在函数(answer){…}中指定。