我是 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 数据时遇到了麻烦。有人可以帮忙吗?
最佳答案
您始终可以使用Buffer.toString()
。理想情况下,您希望在客户端下载文件,在这种情况下,Content-Type
的 header 可以设置为“application/vnd.ms-excel”。
可以通过 Buffer.toString('base64')
关于node.js - 如何从nodejs的缓冲区中获取原始数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49661604/