node.js - 如何从nodejs的缓冲区中获取原始数据?

标签 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 数据时遇到了麻烦。有人可以帮忙吗?

最佳答案

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

读取响应

关于node.js - 如何从nodejs的缓冲区中获取原始数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49661604/

相关文章:

node.js - 我已经更新了github上的数据,但是 Node 模块请求仍然得到旧数据

python - 使用 CFLAGS 和 PIP 缩小 AWS Lambda 部署包以适应 sklearn

javascript - grunt 的问题

node.js - Webpack-dev-server 配置将 API 调用从 React-router 路由到 Node/Express 路由器

amazon-web-services - 没有为方法定义集成 - 选择将部署 API 的阶段

ssl - 客户端 SSL 不适用于 AWS API Gateway

utf-8 - Google Actions - 使用 AWS API Gateway 时的 UTF-8 解码

amazon-web-services - 在 axios 上添加内容编码 header

node.js - 在node js中使用node-oracledb将对象作为输入参数传递给存储过程

javascript - NodeJS 中用于 Alexa Lambda 的 API key