Входной пароль Node.js к файлу bin, запускаемому через spawn
Я бегу .bin
подать через child_process.spawn()
, который принимает некоторые входные данные от пользователя до завершения установки. Кажется, работает нормально, принимая все входы правильно через process.stdin.write("input"\n);
, Однако то же самое не работает, когда пароль отправляется через стандартный ввод. Непосредственно работает bin
файл и ручной ввод пароля работает. Есть ли какой-нибудь формат, который я должен установить перед отправкой пароля через node.js? Я просто продолжаю видеть *
вход в stdout постоянно, и, кажется, установка не идет дальше. Ниже приведен фрагмент, который я использую
var child_process = require('child_process');
var process = child_process.spawn('./test.bin');
process.stdout.on('data', function(data) {
if(data.toString().trim() === 'Username:')
process.stdin.write("test\n"); // This works
else if (data.toString().trim() === 'Password:')
process.stdin.write("password\n"); //This doesn't
Любые входы на том же могут быть полезны. Спасибо.
Обратите внимание, что при вводе пароля путем прямого запуска bin
файл, после ввода пароля ничего не отображается, но ввод правильного пароля работает. Итак, я думаю, что могут быть какие-то проблемы с кодировкой или что-то вроде того, чего мне не хватает.
1 ответ
Отвечая на мой собственный вопрос, он, кажется, работал, вводя строку пароля по одному символу за раз, как показано ниже:
process.stdin.write(password[0]);
process.stdin.write(password[1]);
process.stdin.write(password[2]);
process.stdin.write(password[3]);
process.stdin.write("\n");