如何使用aws lambda和nodejs创建和发送csv?

q1qsirdb  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(469)

我正在编写一个lambda函数,它从dynamodb获取数据并将其存储在数组中。现在我想从这个数组创建一个csv文件并返回它(最好直接从lambda函数,而不是将其上载到s3,然后共享链接)。你知道怎么做吗?
我的代码到现在为止-

  1. import AWS from "aws-sdk";
  2. import createError from "http-errors";
  3. import commonMiddleware from "../lib/commonMiddleware";
  4. const dynamodb = new AWS.DynamoDB.DocumentClient();
  5. async function getFile(event, context) {
  6. const { id: someId } = event.pathParameters;
  7. let data;
  8. const params = {
  9. TableName: process.env.TABLE_NAME,
  10. IndexName: "GSIsomeId",
  11. KeyConditionExpression: "someId = :someId",
  12. ExpressionAttributeValues: {
  13. ":someId": someId,
  14. },
  15. };
  16. try {
  17. const result = await dynamodb.query(params).promise();
  18. data = result.Items;
  19. } catch (error) {
  20. console.error(error);
  21. throw new createError.InternalServerError(error);
  22. }
  23. // data is array of objects which I can change to 2d array using Object.values()
  24. // I want to create and return a CSV from this array
  25. return {
  26. statusCode: 200,
  27. body: JSON.stringify(data),
  28. };
  29. }
  30. export const handler = commonMiddleware(getFile);
r1wp621o

r1wp621o1#

使用此处提到的任何方法生成csv后,请在节点中将json数组转换为csv
我想您可以尝试发回文件的字节数组。

相关问题