我正在浏览器中为学校建立一个SFTP客户端。我正在使用节点包ssh2,并且能够让我的代码在终端中工作。我可以使用代码连接和读取该服务器中的目录和文件。但是,我无法通过浏览器中的HTML部分执行代码。我收到错误"不支持绑定"。 我正在使用angular和browserify。因为ssh2包是服务器端的,所以我不得不使用browserify以便"要求"它位于我需要的JavaScript文件的顶部。 有没有人在他们的浏览器中使用过ssh2包?我认为绑定错误消息告诉我这个包只能在终端中工作,但我想确定。这是我的代码......
控制器:
"use strict";
module.exports = function($scope) {
$scope.connect = function(){
let Client = require('../../lib/node_modules/ssh2-sftp-client');
let sftp = new Client();
sftp.connect({
host: 'test.rebex.net',
port: '22',
username: 'user',
password: 'password'
}).then(() => {
var remoteServerFolders = sftp.list('/');
console.log("remoteServerFolders", remoteServerFolders);
return remoteServerFolders;
}).then((data) => {
console.log('the data info', data);
sftp.end();
}).catch((err) => {
console.log('catch error', err);
});
};
};

app.js:
"use strict";
let angular = require("../lib/node_modules/angular/");
let app = angular.module("SftpApp", ['ngRoute']);
require("../lib/node_modules/angular-route/angular-route.min.js");
require("./factories/");
require("./controllers/");
app.config(function($routeProvider){
$routeProvider.
when('/', {
templateUrl: 'partials/connect.html',
controller:"ConnectingCtrl"
});
});

HTML:
<h1>Connect to an SFTP server</h1>
<div ng-controller="ConnectingCtrl">
<button type="button" class="btn btn-default" ng-click="connect()">Connect</button>
</div>
&#13;
答案 0 :(得分:0)
没有
您不能使用ssh2,因为它使用本机代码,无法在浏览器中运行。它必须仅从node.js运行。
您最好的选择是使用可以代替ssh over websocket的东西。