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

这是我的密码
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);
}我找不到任何有用的资源来解决这个问题,我现在能做什么呢?
谢谢
发布于 2019-04-24 01:18:29
这是一个异步问题。连接成功后,您需要上传文件。
守则应是:
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 >客户端)-当连接和身份验证成功时发出。
https://stackoverflow.com/questions/55804720
复制相似问题