首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nodejs多文件上传

Nodejs多文件上传
EN

Stack Overflow用户
提问于 2021-02-10 07:19:42
回答 1查看 95关注 0票数 0

所以,我有这个:

代码语言:javascript
复制
    async function uploadImageToFtp(fileName, path) {
      const client = new ftp.Client()
      client.ftp.verbose = true
      try {
        await client.access({
          host: process.env.FTP_HOST,
          user: process.env.FTP_USER,
          password: '123',
          secure: false
        })
        await client.uploadFrom(path, "tables/" + fileName)
      } catch (err) {
        console.log(err)
      }
      
client.close()
}

fs.readdir('plates', function(err, files) {
  //handling error
  if (err) {
    return console.log('Unable to scan directory: ' + err);
  }
  //listing all files using forEach
  files.forEach(function(file) {
    uploadImageToFtp(file, 'plates/' + file);
    console.log(file);
  });
});

但是我得到了“太多的FTP连接...”。那么,如何等待1个文件上传,然后继续进行秒级操作……?谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-10 09:23:05

使用for-loop而不是forEach,并在示例中完全使用async/await

代码语言:javascript
复制
fs.readdir('plates', async function (err, files) { // async function, carefully this line, `readdir` still is a callback function
  //handling error
  if (err) {
    return console.log('Unable to scan directory: ' + err);
  }
  //listing all files using forEach
  for (const file of files) {
    await uploadImageToFtp(file, 'plates/' + file); // wait until it done
    console.log(file);
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66128710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档