如何使用express、ssh2和shellJSNodeJS

如何使用express、ssh2和shellJSNodeJS,express,libssh2,Express,Libssh2,正在尝试使用SSH2和express从远程服务器执行命令,并在浏览器中查看输出。当我执行以下命令时,我在控制台日志中收到了“正常运行时间”的输出。但我无法在浏览器中显示它们 var express = require('express'); var app = express(); var Client = require('ssh2').Client; var conn = new Client(); var test = function(req,res,next) { conn.on(

正在尝试使用SSH2和express从远程服务器执行命令,并在浏览器中查看输出。当我执行以下命令时,我在控制台日志中收到了“正常运行时间”的输出。但我无法在浏览器中显示它们

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)

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


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

,以便在服务器上使用shell js,您需要在那里远程执行脚本。我建议您使用ssh
conn.exec(“cat/var/log/some_file”,function…
直接在那里执行命令我试图执行ssh2,但无法在浏览器中输出。我已编辑了问题并添加了代码您需要在
stream.on(“关闭”)中终止请求
res.end()
callback.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('data',function,function(data){res write(data){连接({host:'192.168.1.6',端口:22,用户名:'username',密码:'password'});}app.use('/',test)app.listen(3000)它正在工作,但低于err thrower;//未处理的“error”事件错误:write afterend@drinchev它正在工作,但正在低于错误事件。js:183 throw er;//未处理的“error”事件错误:在通道的ServerResponse.write(_http_outing.js:625:15)处的write_u(_http_outing.js:620:10)处的write_uhttp_outing.js:12:5)结束后写入在emitOne(events.js:116:13)在Channel.emit(events.js:211:7)在addChunk(_stream_readable.js:263:12)在readableAddChunk(_stream_readable.js:250:11)在Channel.readable.push(_stream_readable.js:208:10)在SSH2Stream.(node_modules\ssh2\lib\Channel\Channel.js:166:15)在emitOne(events.js:116:13)