微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

节点 ssh2: TypeError: <Object> 不是构造函数

如何解决节点 ssh2: TypeError: <Object> 不是构造函数

我有节点 v14.17.0 和 ssh2 1.1.0 https://www.npmjs.com/package/ssh2

我尝试使用下面的代码建立连接,但它在 TypeError: NodeSSH is not a constructor

上崩溃了

我也试过

var NodeSSH= require('ssh2');

var c = new NodeSSH();

var NodeSSH= require('ssh2').Client;

const {NodeSSH} = require('ssh2');
const c = new NodeSSH();

c.on('keyboard-interactive',function(name,instructions,instructionsLang,prompts,finish) {
    console.log('Connection :: keyboard-interactive');
    finish(['pswd']);
    }).on('end',function() {
        console.log('Connection :: end');
        console.log(callback());
    }).on('error',function(error) {
        console.log(error);
    }).connect({
        host: 'XX.XX.XXX.XXX',username: 'usr',port: "22",tryKeyboard: true,debug: console.log
    });

我似乎无法弄清楚是什么导致了这种情况。

解决方法

我认为你应该做这样的事情,你获取实例的方式是不正确的。


const { Client } = require('ssh2'); // it exports Client not NodeSSH

const conn = new Client();

conn.on('keyboard-interactive',function(name,instructions,instructionsLang,prompts,finish) {
    console.log('Connection :: keyboard-interactive');
    finish(['pswd']);
    }).on('end',function() {
        console.log('Connection :: end');
        console.log(callback());
    }).on('error',function(error) {
        console.log(error);
    }).connect({
        host: 'XX.XX.XXX.XXX',username: 'usr',port: "22",tryKeyboard: true,debug: console.log
    });

您应该检查文档如何使用它,尽管您已经在问题中分享了它。我建议你通过一次。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。