node-ftp icon indicating copy to clipboard operation
node-ftp copied to clipboard

Add Promise versions of methods

Open SeriousMonk opened this issue 2 years ago • 0 comments

Hi,

I am currently trying to use this package to upload an array of files to an ftp server. Currently since the methods only support callbacks, this is impossible if not by writing some horrendous code.

It would be very neat to have promise versions of all methods so that I could write code like this:

const c = new Client();

c.on('ready', async function(){

  for(let f of files){
    try{
      await c.put(`tmp/${req.body.user._id}/${f}`, `images/user/${req.body.user._id}/${f}`);
      fs.unlinkSync(`tmp/${req.body.user._id}/${f}`);
    }catch(e){
      files.splice(files.indexOf(f), 1); //remove file from files array
    }
  }

  c.end();

  return res.status(200).send({success: true, paths: files});
});

c.connect(JSON.parse(process.env.FTP_CONFIG));

SeriousMonk avatar May 21 '23 17:05 SeriousMonk