我有一个用于连接设备的类。我已经在我的应用程序中创建了类的实例
app.js
myConn = new myConnection();
myConnection.js
function myConnection(){
this.settings = {
host: '192.168.225.195',
port: 22,
username: 'sysadmin',
password: 'pass'
};
}
我在所述类中有一个函数,它在远程设备上执行命令,但需要密码。当发生这种情况时,执行stderr.on并发送密码和换行符。
myConnection.prototype.installPatch = function(callback){
this.conn.exec('sudo -S bash /tmp/update.sh', function(err, stream){
var standardMsgs = '';
var errorMsgs = '';
if(err) throw err;
stream.on('close', function(code, signal) {
callback(standardMsgs, errorMsgs);
}).on('data', function(data) {
standardMsgs += "<br>" + data;
console.log('STDOUT: ' + data);
}).stderr.on('data', function(data) {
errorMsgs += data;
console.log('STDERR: ' + data);
stream.write(myConn.conn.config.password + '\n');
});
});
}
虽然这有效但我不喜欢用
访问密码stream.write(myConn.conn.config.password + '\n');
因为更改名称&#34; myConn&#34;在app.js中需要在&#34; installPatch&#34;中进行相同的更改。功能。
我打算使用
stream.write(this.settings.password + '\n');
我是否有其他选项可以让我从myConnection类中检索密码?我希望我只是忽略了显而易见的事情。
答案 0 :(得分:0)
好的,所以我相信它是我的主角。
更改
stream.write(myConn.conn.config.password + '\n');
到
stream.write(stream._client.config.password + '\n');