尝试使用SSH2并表示从远程服务器执行命令并在浏览器中查看输出。当我执行以下命令时,我在控制台日志中收到“uptime”输出。但我无法在浏览器中显示它们。
var express = require('express');
var app = express();
var Client = require('ssh2').Client;
var conn = new Client();
var test = function(req,res,next)
{
conn.on('ready', function()
{
console.log('Client :: ready');
conn.exec('uptime', function(err, stream)
{
if (err) throw err;
stream.on('close', function(code, signal)
{
console.log('Stream :: close :: code: ' + code + ', signal: ' + signal);
conn.end();
}).on('data', function(data)
{
console.log('STDOUT: ' + data);
res.write(data)
}).stderr.on('data', function(data)
{
console.log('STDERR: ' + data);
});
});
}).connect
({
host: '192.168.1.10',
port: 22,
username: 'username',
password: 'password'
});
}
app.use('/', test)
app.listen(3000)
答案 0 :(得分:0)
将数据移到变量中,并在exec函数之后使用res.write()。
现在我正在使用ssh2-utils(ssh2的包装器),它使脚本更简单