node.js - NodeJS 多方文件上传到 Azure 和文本字段

标签 node.js azure multipartform-data multiparty

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

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

  1. 表单提交
  2. 获取文本字段
  3. 在 mongodb 中搜索包含文本字段数据的文档
  4. 如果该项目存在,则继续将文件上传到 Azure,否则返回
  5. 文件上传到 Azure
  6. 将 URL 保存到与
  7. 中找到的同一 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 获取该 URL。

<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/

相关文章:

JavaScript - "url.path"和 "url.pathname"有什么区别?

azure - 是否可以从 Azure 工作线程进行打印?

Azure 逻辑应用程序更改计划重复

Perl LWP 用我的边界发布表单数据

java - Electron 应用程序可以与 java 代码集成吗?

javascript - gcloud-node - 如何确保通过签名 URL 上传到 Google Cloud Storage 的文件是公开可读的?

javascript - 为什么 remoteAddress 被隐藏了?

android - 将 google play 服务与 microsoft azure 一起使用时出现 NoClassDefFoundError : com. google.gson.GsonBuilder

带图像上传的 C# 多部分表单帖子

java - OKHTTP Post FormDataMultiPart