#node.js #stdin
#node.js #stdin
Вопрос:
Я использую readline
модуль в узле (12) для приема пользовательского ввода как такового:
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
массив, но, к сожалению, процесс распечатывает каждую только что прочитанную строку:
Как я могу избавиться от лишних строк (без >
подсказки)
Ответ №1:
Я исправил это, изменив способ запуска моего скрипта. Раньше я использовал nodemon
-r ts-node/register
опцию with node . Проблема исчезла, когда я переключился на использование ts-node-dev
для выполнения скрипта.
Также обратите внимание, что process.stdin.isTTY
теперь она установлена правильно, тогда как раньше она не была определена (посмотрите на первую строку на изображении ниже, против в исходном сообщении)
Все еще не знаю основной причины, но я рад двигаться дальше.