jsftp-TypeError:createConnection不是函数

时间:2018-08-02 18:54:22

标签: node.js angular function typescript sftp

我刚刚使用client-ftp发布了一个最近的问题,并被告知该软件包已过时,这是我最初问题的根源。如建议的那样,我移至一个仍在维护的软件包,即jsftp。但是,我仍然有类似的问题。供参考,我的上一个问题可以找到here。我仍然会重申我的问题,因为它已经稍有改变。

我是Angular / Node的新手,正在尝试连接到ftp服务器。

我正在像这样在前端创建一个按钮: <button class="btn btn-primary" (click)="downloadFile()"><i class="fa fa-file-photo-o"></i> Download Screenshot</button>

我要下载的新实现是这样的:

downloadFile(){
    console.log('Connecting to sftp...');
    var jsftp = require("jsftp");

    var ftp = new jsftp({
        host: 'localhost',
        port: 22,
        user: 'anonymous',
        pass: 'anonymous'
    });

    console.log('Downloading Screenshot...');
}

我意识到我并没有在尝试下载任何东西,但是现在我只是在尝试先连接。问题是,触发点击事件时,我收到一条错误消息,提示TypeError: createConnection is not a function。我不知道我在做什么错。 createConnection函数未在任何地方调用。我正在按照文档所说的去做,其他资源似乎也表明了这一点,例如here

节点版本为:v8.11.3-也许这已经过时了?

1 个答案:

答案 0 :(得分:1)

您标记了打字稿,可能是由于files.upload(这是JavaScript而不是打字稿)错误造成的(请参见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Errors/Not_a_function)。

第二,您似乎对NodeJS(后端)和浏览器(前端)中的javascript感到困惑。您无法在浏览器中运行TypeError,因此您的方法需要更改。

如果您要让用户单击链接时从浏览器下载ftp文件,则应该可以直接在href中链接该文件,而无需使用任何JavaScript。请查看此问题的答案以获取更多信息:Is it possible to download file from FTP using Javascript?