У меня есть сценарий Node.js, который выглядит следующим образом:Обнаружение нажатия клавиш и замена строк в консоли
var chalk = require("chalk");
var https = require("https");
var express = require("express");
var fs = require("fs")
var app = express();
const readline = require("readline");
var keypress = require("keypress");
var process = require("process");
var emitter = require("emitter");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
console.log(' _______');
console.log(' / o \\ .------------------------.');
console.log(' | > | Welcome to chikin! |');
console.log(' \\_______/ | A npm package manager |');
console.log(" | | '------------------------'");
console.log(' ^ ^');
console.log('_____________________________________________\n');
console.log(chalk.bold.green('What would you like to do?') + ' Type ' + chalk.bold.blue('a') + ',' + chalk.bold.blue('b') + ', or ' + chalk.bold.blue('c'));
console.log('_________________________________________');
console.log('a. ' + chalk.bold.blue('Install Packages'));
console.log('b. ' + chalk.bold.blue('Update Packages'));
console.log('c. ' + chalk.bold.blue('Uninstall Packages\n'));
var du = '';
var valid = false;
rl.question('?> ', function(answer) {
var areValid = ['a', 'b', 'c', 'A', 'B', 'C', 'a.', 'b.', 'c.', 'A.', 'B.', 'C.'];
if (answer in areValid) {
valid = true;
}
})
Этот скрипт пытается определить, хочет ли использование А. Установка пакетов, B. Обновить пакеты или C. Удалить пакеты. Использование метода rl.question()
не работает, так как при его запуске курсор просто мерцает и не позволяет мне вводить что-либо. Поэтому вместо того, чтобы использовать подсказку, я думал, что смогу обнаружить ее с помощью нажатия клавиш. Хотя я понятия не имею, как это сделать. Я также думал, что он может заменить последнюю строку консоли на последний действительный ответ. Будет ли какой-нибудь способ сделать это?
Вы имеете в виду первую строчку? – heemayl
@heemayl Да, первая строка печатает. –
'subprocess.check_output (['bash', '/path/to/script.sh']). Decode ('utf-8'). Split ('\ n') [0]'? – heemayl