首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >电子和node.js应用程序在易ftp中的文件上传错误

问电子和node.js应用程序在易ftp中的文件上传错误
EN

Stack Overflow用户
提问于 2019-04-23 05:14:45
回答 1查看 558关注 0票数 1

我试图使用易ftp包将csv文件上传到远程ftp中,但有时会上传&有时显示错误,如下图所示。

​

​

这是我的密码

代码语言:javascript
复制
let ftp = new EasyFtp();
try{
    const config = {
        host: 'ftp.saba.com',
        port: 21,
        username: 'username',
        password: 'password',
        type : 'ftp'
    };
    ftp.connect(config);
    ftp.upload(csvName, "/csvs/", function (err) {
        try {
            fs.unlink(csvName, (err) => {
                if (err) {
                    console.log(err);
                    return;
                }
            });
        } catch(error) {
            console.log(error);
        }
    });
} catch(error) {
    console.log(error);
}

我找不到任何有用的资源来解决这个问题,我现在能做什么呢?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-24 01:18:29

这是一个异步问题。连接成功后,您需要上传文件。

守则应是:

代码语言:javascript
复制
ftp.on('open', function(){
  ftp.upload(csvName, "/csvs/", function (err) {
    // process upload result
  });
});

ftp.connect(config);

在您的代码中,upload请求将在connect操作之后立即发送。如果幸运的话,当easy尝试交付upload操作时,以前的connect已经完成并成功了,那么upload也会成功。

如果运气不好,当easy尝试交付upload操作时,以前的connect还没有完成。然后upload将失败并显示“无法读取属性.”错误(看起来容易-ftp应该会显示一些更好的错误消息)。

要解决这个问题,您需要在event中侦听“开放”事件,并且只在发出该事件时才上传文件:

打开(< FTPClient >客户端)-当连接和身份验证成功时发出。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55804720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档