Как извлечь / проанализировать данные из запроса multipart / form-data в Node-RED? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть узел 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 в узле функции.Итак, я закончил тем, что использовал ответ sir @ hardillb и заново создал запрос multipart / form-data в потоке.

Ссылка: Как создать многокомпонентный HTTP-запрос в Node-RED

1 Ответ

0 голосов
/ 16 мая 2019

Вам не нужно больше ничего использовать. Просто убедитесь, что флажок «Принять загрузку файлов» отмечен и файлы должны быть доступны в 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 содержит содержимое первого файла.

...