/ / Como separar multipart / form-data com boudary em node.js - node.js, azure, http-post, azure-functions

Como separar dados de várias partes / formulário com o boudary no node.js - node.js, azure, http-post, azure-functions

Conteúdo da mensagem recebida do HttpPost

Tenho um Azure Function em execução em Node.js

A mensagem que chega tem um tipo de conteúdo com um limite especificado.

"content-type": "multipart/form-data;
boundary=------------------------8bb0bdeb26804014" },

Como posso obter o objeto encontrado no RawRequest?

--------------------------8bb0bdeb26804014rnContent-Disposition: form data; name="rawRequest"rnrn

{"slug":"submit\/80705882093865\/",
"q1_nombres":"first":"textbox_sample0",
"last":"textbox_sample1"},
"q3_email":"john@example.com",
"preview":"true"}rn

Edit1:

Até agora estou fazendo isso:

var parts = req.headers["content-type"].split("boundary=");
var boundary = parts[1];
context.log("Boundary: "+boundary);
var splitBody = req.body.split( boundary );
context.log("RawRequest: "+splitBody[8]);

Mas eu ainda teria que contornar isso:

Content-Disposition: form-data; name="rawRequest"

{"slug":"submit/80705882093865/",
"q1_nombres":{"first":"textbox_sample0",
"last":"textbox_sample1"},
"q3_email":"john@example.com",
"preview":"true"} --

E parece muito propenso a quebrar se eu começar a manipular ainda mais a corda.

Respostas:

0 para resposta № 1

Que tal tentar substring() método para conseguir isso?

var indexStart = splitBody.indexOf("{");
var indexEnd = splitBody.lastIndexOf("}") + 1;
var rawRequest = str.substring(indexStart, indexEnd);
console.log(rawRequest);