【问题标题】:Node.js readline module: stop reprinting the line just readNode.js readline 模块:停止重新打印刚刚读取的行
【发布时间】:2020-12-03 06:07:06
【问题描述】:

我在 Node (12) 中使用 readline 模块来接受用户输入:

import * as readline from "readline";

process.stdin.setEncoding('utf-8');
console.log("input is a TTY?",process.stdin.isTTY);

const rl = readline.createInterface({input: process.stdin, output: process.stdout, prompt: '> '});
rl.prompt();
rl.on('line' ,inputLine => { inputStringLines.push(inputLine); rl.prompt(); });
rl.on('close',() => { console.log('input has closed'); main(); });

这些行已正确捕获到我的 inputStringLines 数组中,但令人讨厌的是,该过程正在打印出刚刚读取的每一行:

我怎样才能去掉多余的行(那些没有> 提示的行)

【问题讨论】:

    标签: node.js stdin


    【解决方案1】:

    我通过更改脚本的运行方式来修复它。之前,我将nodemon 与节点的-r ts-node/register 选项一起使用。当我切换到使用ts-node-dev 执行脚本时,问题就消失了。

    另请注意,process.stdin.isTTY 现在已正确设置,而之前未定义(请看下图中的第一行,与原始帖子中的对比)

    仍然不知道根本原因,但我很高兴继续前进。

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 2011-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多