Node.js 通过 spawn 输入密码到正在 运行 的 bin 文件

Node.js input password to a bin file being run via spawn

我是 运行 通过 child_process.spawn().bin 文件,它在完成设置之前接收用户的一些输入。通过 process.stdin.write("input"\n); 正确获取所有输入似乎工作正常。但是,当通过 stdin 发送密码时,这不起作用。直接 运行 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

相同的任何输入可能是 helpful.Thanks。

请注意,当直接通过运行 bin 文件输入密码时,在输入密码时,不会显示任何内容,但输入正确的密码即可。所以,我认为可能存在一些编码问题或我可能遗漏的类似问题。

回答我自己的问题,它似乎通过一次输入一个字符的密码字符串来工作,如下所示:

process.stdin.write(password[0]);
process.stdin.write(password[1]);
process.stdin.write(password[2]);
process.stdin.write(password[3]);
process.stdin.write("\n");