在继续执行Azure文件上传之前,我需要验证mongodb文档是否存在。

该表单由一个文件和一个文本字段组成,所需的逻辑如下:


表格提交
获取文本字段
在mongodb中搜索包含文本字段数据的文档
如果该项目存在,则继续将文件上传到Azure,否则返回
文件上传到Azure
将URL保存到在以下位置找到的同一MongoDB文档中的文件中


我面临的问题是我无法触摸form.on('part')中的字段数据,并且无法使其首先与form.parse一起使用。
这是我的代码,我愿意更改库并尽一切努力使其正常运行。

var form = new multiparty.Form();
var formField = "";
form.parse(req, function(err, fields, files) {
  formField = fields.fieldinform[0];
});
console.log(formField); //empty async?

model
  .findOne({ name: formField })
  .then(obj => {
    form.on("part", function(part) {

      if (!part.filename) return;


      var size = part.byteCount;
      var name = part.filename;
      var container = "test";

      blobService.createBlockBlobFromStream(
        container,
        name,
        part,
        size,
        function(error) {
          if (error) {
            console.log("failed");
          }
        }
      );
    });
  })
  .catch(e => {
    //do not continue
  });


帮助将不胜感激!

最佳答案

经过大量搜索,但没有给出正确的答案,我决定使用jquery,在提交前将表单的操作URL更改为/ upload / textintextfield,然后在node中使用req.params.textfield进行抓取。

<script>
$('#fileUploadForm').submit(function() {
$('#fileUploadForm').attr('action', '/upload/addvideo/' + $('#textfield').val())
return true;
});
</script>

关于node.js - NodeJS多方文件上传到Azure和一个文本字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49598960/

10-11 09:18
查看更多