Node.js readline 模块:停止转载刚刚读取的行
Node.js readline module: stop reprinting the line just read
我在节点 (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
数组中,但令人讨厌的是,该过程正在打印出刚刚读取的每一行:
如何去掉多余的行(没有 >
提示符的行)
我通过更改 运行 我的脚本的方式修复了它。之前,我将 nodemon
与节点的 -r ts-node/register
选项一起使用。当我切换到使用 ts-node-dev
来执行脚本时,问题就消失了。
另请注意 process.stdin.isTTY
现在已正确设置,而之前未定义(查看下图中的第一行,与原始 post 对比)
仍然不知道根本原因,但我很高兴继续前进。
我在节点 (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
数组中,但令人讨厌的是,该过程正在打印出刚刚读取的每一行:
如何去掉多余的行(没有 >
提示符的行)
我通过更改 运行 我的脚本的方式修复了它。之前,我将 nodemon
与节点的 -r ts-node/register
选项一起使用。当我切换到使用 ts-node-dev
来执行脚本时,问题就消失了。
另请注意 process.stdin.isTTY
现在已正确设置,而之前未定义(查看下图中的第一行,与原始 post 对比)
仍然不知道根本原因,但我很高兴继续前进。