Это асинхронная проблема.Вам необходимо загрузить файл после успешного подключения.
Код должен быть:
ftp.on('open', function(){
ftp.upload(csvName, "/csvs/", function (err) {
// process upload result
});
});
ftp.connect(config);
В вашем коде запрос upload
отправляется сразу после операции connect
.Если повезет, когда easy-ftp попытается выполнить операцию upload
, предыдущий connect
уже завершен и успешен, тогда upload
также будет успешным.
Если не повезет, при попытке easy-ftpдля выполнения операции upload
предыдущий connect
еще не завершен.Тогда upload
завершится ошибкой и выдаст ошибку «Cannot read property ...» (похоже, что easy-ftp должен отображать более качественное сообщение об ошибке).
Для решения проблемы необходимо прослушать «open» событие в easy-ftp, и загружать файлы только тогда, когда это событие было отправлено:
open ( клиент) - отправляется, когда соединение и аутентификация были успешными.