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

Posted

技术标签:

【中文标题】节点 ssh2:TypeError:<Object> 不是构造函数【英文标题】:Node ssh2: TypeError: <Object> is not a constructor 【发布时间】:2021-09-28 13:34:16 【问题描述】:

我有节点 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");,它会工作的。在此处查看文档npmjs.com/package/ssh2 【参考方案1】:

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


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
    );

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

【讨论】:

啊,谢谢,由于还使用了ssh2-sftp-client 而我更改了它,并且由于我对 nodejs 完全陌生,所以我只是更改了名称。 当你是新手时会发生这种情况,没关系。

以上是关于节点 ssh2:TypeError:<Object> 不是构造函数的主要内容,如果未能解决你的问题,请参考以下文章

节点 SSH2 客户端连接会话

TypeError: super(type, obj): obj 必须是类型的实例或子类型,仅当我的元类被导入时

TypeError: super(type, obj): obj must be an instance or subtype of type

Spark Sql: TypeError("StructType 不能接受类型为 %s 的对象" % type(obj))

如何在 Windows 上无错误地 npm i ssh2?

TypeError: Object of type 'int32' is not JSON serializable ——已解决