如何使用express,ssh2和shellJSNodeJS

时间:2018-04-17 07:30:38

标签: express libssh2

尝试使用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)

1 个答案:

答案 0 :(得分:0)

将数据移到变量中,并在exec函数之后使用res.write()。

现在我正在使用ssh2-utils(ssh2的包装器),它使脚本更简单