如何使用express、ssh2和shellJSNodeJS
正在尝试使用SSH2和express从远程服务器执行命令,并在浏览器中查看输出。当我执行以下命令时,我在控制台日志中收到了“正常运行时间”的输出。但我无法在浏览器中显示它们如何使用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(
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)