如何从Node-RED中的多部分/表单数据请求中提取/解析数据?

时间:2019-05-16 07:20:23

标签: multipartform-data node-red

我有一个HTTP-in节点,该节点接收包含以下有效负载的请求:

------WebKitFormBoundaryk5AazdSJAKEDRWS9
Content-Disposition: form-data; name="file"; filename="Sample1.csv"
Content-Type: application/vnd.ms-excel

< ... csv data here ... >

------WebKitFormBoundaryk5AazdSJAKEDRWS9
Content-Disposition: form-data; name="data"; filename="Sample1.json"
Content-Type: application/json

< ... json data here ... >

------WebKitFormBoundaryk5AazdSJAKEDRWS9--
  

如何提取/解析数据或文件内容?

遗憾的是,由于缺少访问权限,我无法将formidable之类的库添加到Node-RED。


更新
似乎可以在功能节点中手动创建multipart / form-data。因此,我最终使用了@hardillb先生的答案,并在流程中重新创建了multipart / form-data请求。

参考:How to create multipart HTTP request in Node-RED

1 个答案:

答案 0 :(得分:0)

您不需要使用其他任何东西。只需确保选中“接受文件上传”框,并且文件应该在msg.req.files下可用

具有以下结构:

[
  {
    fieldname: "file",
    originalName: "Sample1.csv",
    encoding: "7bit",
    mimeType: "application/vnd.ms-excel",
    buffer: [...],
    size: 2345
  },
  {
    fieldname: "data",
    originalName: "Sample1.json",
    encoding: "7bit",
    ...
  }
]

msg.req.files[0].buffer包含第一个文件的内容。