如何在nodejs中将原始数据形成缓冲区?

时间:2018-04-04 22:50:07

标签: node.js aws-lambda aws-api-gateway

我是nodejs的新手,我正在尝试使用API​​ Gateway和Lambda实现文件(CSV格式)上传要求。这是我的lambda函数中的nodejs代码,用于缓冲来自API网关的请求体:

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

当我记录bodyBuffer时,我看到了全身请求:

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

然后我尝试从中获取CSV数据:

let json = JSON.stringify(bodyBuffer);

但它看起来像这样:

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

我很难在这里获得正确的csv数据。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您始终可以使用Buffer.toString()。理想情况下,您希望在客户端下载文件,在这种情况下,Content-Type的标题可以设置为' application / vnd.ms-excel'。
可以通过Buffer.toString('base64')

读取响应