2
我試圖運行從節點調用.js文件中的命令(aws配置)。我一直在使用child_process,它允許我執行命令或批處理文件。但是,當該文件通常會提示用戶輸入用戶名和密碼時,我無法進行交互。節點運行命令,提示用戶
我嘗試使用process.stdin與節點,以便可能使用節點作爲用戶輸入的中間人,但我無法將兩者連接在一起。
如果有人有任何想法,將是偉大的!
var spawn = require('child_process').spawn;
var mystdin = process.stdin;
var conf = spawn('aws configure', {input: mystdin, shell: true});
//When command returns
conf.stdout.on('data', function(data) {
console.log('stdout: ' + data);
//prompt for input
mystdin.resume();
mystdin.setEncoding('utf8');
var util = require('util');
mystdin.on('data', function (text) {
//INSERT ANSWER HERE
console.log('received data:', util.inspect(text));
if (text === 'quit\n') {
done();
}
});
function done() {
console.log('Now that process.stdin is paused, there is nothing more to do.');
process.exit();
}
});
conf.stderr.on('data', function(data) {
console.log('stdout: ' + data);
});
conf.on('close', function(code) {
console.log('child precess exited with code ' + code);
});
這只是我目前正在走下的路。如果有人有更好的建議,讓我知道!
謝謝