如何从 Node-RED 中的 multipart/form-data 请求中获取 extract/parse 数据?

How to extract/parse data from a multipart/form-data request in 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--

How do I extract/parse the data or file content?

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


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

参考:

您不需要使用其他任何东西。只需确保 "Accept File uploads" 框被勾选并且文件应该在 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 包含第一个文件的内容。