node.js - 以交互方式从控制台读取值

标签 node.js console

我想用一些控制台扩展来制作一个简单的服务器 http 服务器。我找到了从命令行数据中读取的片段。

  var i = rl.createInterface(process.stdin, process.stdout, null);
  i.question('Write your name: ', function(answer) {
    console.log('Nice to meet you> ' + answer);
    i.close();
    process.stdin.destroy();

  });

重复提问,我不能简单地使用 while(done) { } 循环吗?同样,如果服务器在提问时收到输出,它会破坏线路。

最佳答案

你不能做一个“while(done)”循环,因为这需要阻塞输入,这是 node.js 不喜欢做的。

而是设置每次输入内容时调用的回调:

var stdin = process.openStdin();

stdin.addListener("data", function(d) {
    // note:  d is an object, and when converted to a string it will
    // end with a linefeed.  so we (rather crudely) account for that  
    // with toString() and then trim() 
    console.log("you entered: [" + 
        d.toString().trim() + "]");
  });

关于node.js - 以交互方式从控制台读取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8128578/

相关文章:

java - 如何在 Java 控制台中打印波斯语和阿拉伯语 (utf-8) 字符?

python - 带有 block 字符的终端中的文本进度条

javascript - 带有回调的 Node Cron 在调用退出后出现 Cannot enqueue Handshake 错误

node.js - 将 Angular 和 Node Express CSRF 与 Redis session 一起使用,如何在 session 过期后重置 session 信息和 CSRF?

Javascript 对象括号表示法和 requirejs

支持全键盘的 Linux 终端?

javascript - batman.js 可以和 express 一起使用吗?

node.js - 在 Node.js 中创建 native 异步函数

delphi - 如何使用Delphi在控制台应用程序中显示进度条?

windows - CTRL+C 和 CTRL+Break 有什么不同?