JSFiddle - React, Tailwind, and code Playground

JavaScript

getDataFtp = (url, uid) => {
  console.log('get into ftp');
  var usefulUrl = url.split('//')[1];
  var spliter = usefulUrl.indexOf('/');
  var host = usefulUrl.substring(0, spliter);
  var dir = usefulUrl.substring(spliter+1, usefulUrl.length);
  var client = new ftp();
  var connection = {
    host: host
  };
  var fileNameStart = dir.lastIndexOf('/') + 1;
  var fileNameEnd = dir.length;
  var fileName = dir.substring(fileNameStart, fileNameEnd);
  console.log('filename: ', fileName);

  return new Promise((resolve, reject) => {
    client.on('ready', () => {
      console.log('get into ftp ready');
      client.get(dir, (err, stream) => {
        if (err) {
          console.log('get file err:', err);
          return;
        } else{
          console.log('get into ftp get');
          stream.pipe(fs.createWriteStream(datadir + `download/${uid}/${fileName}`));
          stream.on('end', () => {
            console.log('get into ftp close');
            unzipData(datadir + `download/${uid}/`, fileName, uid)
              .then(resolve);
            client.end();
          });
        }
      });
    });
    client.connect(connection);
  });
};

getDataReg = (url, uid) => {
  console.log('get into http');
    var fileNameStart = url.lastIndexOf('/') + 1;
  var fileNameEnd = url.length;
  var fileName = url.substring(fileNameStart, fileNameEnd);
    var file = fs.createWriteStream(datadir + `download/${uid}/${fileName}`);
    return new Promise((resolve, reject) => {
      if (url.startsWith('https')) {
        https.get(url, (response) => {
          console.log('start piping file');
          response.pipe(file);
          file.on('finish', () => {
            console.log('get into http finish');
            unzipData(datadir + `download/${uid}/`, fileName, uid)
              .then(resolve);
          });
        }).on('error', (err) => { // Handle errors
        fs.unlink(datadir + `download/${uid}/${fileName}`);
        console.log('download file err: ',...