繁体   English   中英

可以在浏览器中使用节点包 ssh2 吗?

[英]Can you use the node package ssh2 in a browser?

我正在我的浏览器中为学校构建一个 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); }); }; };

应用程序.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>

不。

您不能使用 ssh2,因为它使用本机代码并且无法在浏览器中运行。 它只能从 node.js 运行。

您最好的选择是使用可以通过 websocket 代理 ssh 的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM