Javascript 从ftp获取文件并在console-Node.js中显示文件目录路径

Javascript 从ftp获取文件并在console-Node.js中显示文件目录路径,javascript,node.js,express,npm,ftp,Javascript,Node.js,Express,Npm,Ftp,我是node.js新手,尝试使用从FTP获取文件,然后我想在控制台中显示文件目录路径。当我用NPMStart运行服务器时,我得到所有文件(这很好),但控制台返回空数组。若我使用NPMStart再次运行服务器,控制台会显示每个路径(很棒),但不会显示新文件。我试图用回调和setTimeout来解决我的问题,但没有结果:C var Client = require('ftp'); var c = new Client(); var path = require('path'); var fs = r

我是node.js新手,尝试使用从FTP获取文件,然后我想在控制台中显示文件目录路径。当我用NPMStart运行服务器时,我得到所有文件(这很好),但控制台返回空数组。若我使用NPMStart再次运行服务器,控制台会显示每个路径(很棒),但不会显示新文件。我试图用回调和setTimeout来解决我的问题,但没有结果:C

var Client = require('ftp');
var c = new Client();
var path = require('path');
var fs = require('fs');
var dir = path.join(__dirname, '../excelTime/');
var files = fs.readdirSync(dir);

const connectionProperties = {
  host: 'localhost',
  user: 'user_geek',
  port: '21'
}
从ftp获取文件

const getFilesFromFTP = () => {
  c.on('ready', function() {
    c.list('./', function(err, list) {
      if (err) throw err;
      for(var i = 0; i < list.length; i++) {
        (function(i) {
          const name = list[i].name;
          c.get('/' + name, function(err, stream) {
            if (err) console.dir(err);
            if(!err) {
              stream.once('close', function() { c.end();  });
              stream.pipe(fs.createWriteStream('./excelTime/' + name, {flags: 'w'}));
           }
          });
        }).call(this, i);
      }
      c.end();
    });
  });

  c.on('error', function(err) {
    console.log(err)
  });
  c.connect(connectionProperties);
}
呼叫

setTimeout(function() {
  checkFolder();
}, 3000);

getFilesFromFTP();

在您的示例中,
文件
是未定义的,您永远不会调用
getFilesFromFTP
。你需要提供一个@Quentin,对不起。在您的示例中,刚刚编辑的post
文件
是未定义的,您从未调用
getFilesFromFTP
。你需要提供一个@Quentin,对不起。刚刚编辑的帖子
setTimeout(function() {
  checkFolder();
}, 3000);

getFilesFromFTP();