Загрузка файлов через ftp на Node js

281
31 мая 2018, 14:20

Есть приложение на node js которое копирует директорию и загружает её на сервер таким образом:

  1. Берёт наследников переданой папки;
  2. Проверяем каждого наследника, если это папка повторит 1 пункт только уже передаст эту папку и создаст на сервере папку с таким же именемб если же это файл то просто сделает его копию на сервере;

Сам код:

var Client = require('ftp'); 
 
var fs = require('fs'); 
 
var serverPath = 'Data'; 
 
function copyDirectory(path) { 
 
  var obj = readDir(path); 
 
  for (var i = 0; i < obj.length; i++) { 
 
    var stats = fs.statSync(path + '/' + obj[i]); 
 
    if (stats.isDirectory()) { 
 
      newDir(serverPath += '/' + obj[i]); 
 
      copyDirectory(path + '/' + obj[i]); 
 
    } else if (stats.isFile() && stats['size'] > 0) { 
 
      newDir(serverPath += '/' + obj[i]); 
 
    } 
  } 
  serverPath = 'Data'; 
} 
 
function readDir(path) { 
  return fs.readdirSync(path); 
} 
 
function newDir(folder) { 
  var c = new Client(); 
 
  c.mkdir(folder, function(err) { 
    if (err) { 
      throw arr; 
    } 
  }); 
 
  c.connect({ 
    host: 'host', 
    user: 'user', 
    port: 21, 
    password: 'pass', 
  }); 
} 
 
function SendFile(dir) { 
 
  var c = new Client(); 
 
  c.on('ready', function() { 
    c.put(dir, serverPath, function(err) { 
      if (err) { 
        throw err; 
      } 
      c.end(); 
    }); 
  }); 
  c.connect({ 
    host: 'host', 
    user: 'user', 
    port: 21, 
    password: 'pass', 
  }); 
} 
 
 
copyDirectory('C://Test');

Использую модуль ftp

При запуске выводит ошибку:

events.js:183 throw er; // Unhandled 'error' event Error: Invalid command: try begin more creative

В папке Test достаточно много директорий и файлов

Использую этот хостинг

READ ALSO
Как передать относительные url в $.ajax в yii2?

Как передать относительные url в $.ajax в yii2?

Если я нахожусь на главной странице и оттуда добавляю товар в корзину ajax запросом отправляю на сервер данные - то срабатывает такой вариант:

184
Как оживить control value accessor?

Как оживить control value accessor?

Пытаюсь разобраться с control value accessor и набросал простейший примерВ каждой функции поставил консоль лог чтобы посмотреть в какой именно момент...

184
Отладка приложения с исходниками Meteor

Отладка приложения с исходниками Meteor

Я новичок в javascriptИспользую VSCode

161