/ / Como obter os dados brutos de um buffer em nodejs? - node.js, aws-lambda, aws-api-gateway

Como obter os dados brutos de um buffer em nodejs? - node.js, aws-lambda, aws-api-gateway

Sou muito novo no nodejs e estou tentandoimplementar um requisito de upload de arquivo (formato CSV) usando API Gateway e Lambda. Aqui está meu código nodejs em minha função lambda para armazenar em buffer o corpo da solicitação que vem do API Gateway:

let bodyBuffer = Buffer.from(event["body-json"], "base64");

quando eu logar o bodyBuffer Estou vendo o pedido de corpo inteiro:

2018-04-04T22:30:26.637Z    c56d1263-3857-11e8-ba40-c1378697db16
bodyBuffer: -----------------------------153501500631101
Content-Disposition: form-data; name="uploadedFile"; filename="sampleData.csv"
Content-Type: application/vnd.ms-excel

id,firstName,lastName
1,john,doe
2,jane,doe
-----------------------------153501500631101

Em seguida, tento obter os dados CSV dele:

let json = JSON.stringify(bodyBuffer);

mas fica assim:

{
"type": "Buffer",
"data": [
45,
45,
45,
45,
45,
45,
45,
45,

Tive problemas para obter os dados csv corretos aqui. Alguém pode ajudar por favor?

Respostas:

0 para resposta № 1

Você sempre pode usar Buffer.toString(). O ideal é fazer o download do arquivo no lado do cliente, nesse caso, os cabeçalhos para Content-Type pode ser definido como "application / vnd.ms-excel".
A resposta pode ser lida por Buffer.toString("base64")