Node.js выполнить команду оболочки, которая требует ввода через несколько секунд - PullRequest
0 голосов
/ 13 февраля 2020

Я пытаюсь использовать now cli для покупки домена через мой Node.js сервер, но я не могу понять, как выполнить команду оболочки в Node и автоматически вставить ввод при запросе.

Вот моя команда, использующая child_process.exec

const { stdout } = await exec(`now --token ${NOW_TOKEN} domains buy ${domainName}.${tld}`)

Это ничего не делает, потому что команда ожидает ввода (y/N) для подтверждения покупки домена. У них нет опции в комманде, чтобы обойти вопрос типа --yes.

Как я могу передать строку y + Enter, когда процесс ожидает?

1 Ответ

1 голос
/ 18 февраля 2020

Будь осторожен. Ваше использование может, конечно, нарушать их ToS , если вы перепродаете части их предложения. Вам может потребоваться обратиться к их каналу поддержки для разъяснения.

Относительно кода. Вы можете взглянуть на этот файл для вдохновения: https://github.com/zeit/now/blob/master/packages/now-cli/test/integration.js

Один из вариантов:

stdin.write('y\n')
...