2017-03-15 2 views
0

Ich baue einen SFTP-Client in meinem Browser für die Schule. Ich benutze das Knotenpaket ssh2 und bin in der Lage, meinen Code im Terminal arbeiten zu lassen. Ich kann den Code verwenden, um die Verzeichnisse und Dateien auf diesem Server zu verbinden und zu lesen. Ich kann den Code jedoch nicht über einen HTML-Code in meinem Browser ausführen. Ich erhalte den Fehler "Bindung wird nicht unterstützt". Ich benutze angular und browserify. Da das ssh2-Paket serverseitig ist, musste ich browserify verwenden, um es bei Bedarf an der Spitze meiner JavaScript-Dateien zu "erzwingen". Hat jemals jemand das ssh2-Paket in seinem Browser verwendet? Ich denke, dass die verbindliche Fehlermeldung mir sagt, dass dieses Paket nur im Terminal funktioniert, aber ich wollte sicher sein. Hier ist mein Code ...Können Sie das Knotenpaket ssh2 in einem Browser verwenden?

Controller:

"use strict"; 
 

 
module.exports = function($scope) { 
 

 
\t $scope.connect = function(){ 
 
\t \t let Client = require('../../lib/node_modules/ssh2-sftp-client'); 
 
\t \t let sftp = new Client(); 
 
\t \t sftp.connect({ 
 
\t \t  host: 'test.rebex.net', 
 
\t \t  port: '22', 
 
\t \t  username: 'user', 
 
\t \t  password: 'password' 
 
\t \t }).then(() => { 
 
\t \t \t var remoteServerFolders = sftp.list('/'); 
 
\t \t \t console.log("remoteServerFolders", remoteServerFolders); 
 
\t \t  return remoteServerFolders; 
 
\t \t }).then((data) => { 
 
\t \t  console.log('the data info', data); 
 
\t \t  sftp.end(); 
 
\t \t }).catch((err) => { 
 
\t \t  console.log('catch error', err); 
 
\t \t }); 
 
\t }; 
 
};

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){ 
 
\t $routeProvider. 
 
\t when('/', { 
 
\t \t templateUrl: 'partials/connect.html', 
 
\t \t controller:"ConnectingCtrl" 
 
\t }); 
 
});

HTML:

<h1>Connect to an SFTP server</h1> 
 

 
<div ng-controller="ConnectingCtrl"> 
 
\t <button type="button" class="btn btn-default" ng-click="connect()">Connect</button> 
 
</div>

Antwort

0

Nr

Sie nicht ssh2 verwenden können, weil es nativen Code verwendet und nicht im Browser läuft werden kann. Es muss nur von node.js ausgeführt werden.

Ihr bestes wäre, etwas zu verwenden, das ssh über einen WebSocket Proxy kann.

Verwandte Themen