使用for循环在Sails js中上传文件

问题描述

我的要求是,对于每个防火墙,用户都将上传文件。我将要上传到内存中并将文件名保存到mongo db。

如果有3个防火墙,则仅更新最后一个。其余文件已上载,但数据库中的位置未更新。下面是我的代码

fwid=await Firewall.find({fwno:id})
for(i=0;i<fwid.length;i++){
// I used this since fwid[i].id is showing error while uploading
req.session.updateid=fwid[i].id
  var y="b"+b; 
  var change=req.file(y);
 change.upload({maxBytes:1000000,dirname:'../../assets/images/logs'},async function onUploadComplete(err,files1) {
     if (err) {
      message="error occured while uploading files.please try again";
      console.log(err);
      FlashService.error(req,message);
       res.view('pages/dashboard/home')
     }  
     else if(files1.length==0){
       console.log("no file uploaded")
      var fwids = await Firewall.update({id:req.session.updateid}).set({fwchangefilelocation:changelocation}).fetch()
      console.log(fwids)
     }
     else{
       console.log('file uploaded')
     var changelocation1=files1[0].fd.toString();var start=changelocation1.lastIndexOf('\\');
      changelocation1=changelocation1.substring(start+1);
        var gh = await Firewall.update({id:req.session.updateid}).set({fwchangefilelocation:changelocation1}).fetch()
     
      }
  });
  b++;
}

我的帆版本是:1.2.3 节点版本:12.16

有人可以帮我吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)