首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在没有对象类型的情况下从aws-sdk-js-v3获得完整的DynamoDB扫描响应?(编组回应)

如何在没有对象类型的情况下从aws-sdk-js-v3获得完整的DynamoDB扫描响应?(编组回应)
EN

Stack Overflow用户
提问于 2022-03-13 06:22:35
回答 1查看 239关注 0票数 0

我为自己和其他人回答这个问题,因为我发现AWS、V3文档和示例非常烦人和误导。官方的SDK文档没有提供显示封送输出的示例,因此您可以在响应中看到一堆对象类型。默认情况下,Doc客户端将删除这些内容,但它们并没有向您展示如何删除这些内容。我发布的答案给出了一个封送响应,这意味着它清除了对象类型字符串。

解组响应的一个示例如下所示,请注意字符串的S作为值类型。

代码语言:javascript
复制
[
    {
      project_name: { S: 'fake project' },
      service_now_request_id: { S: 'CHG000212312' },
      service_now_request_url: {
        S: 'https://service-now.com/sampleApp?id=snx&spa=1&m=changes&r=0d12121aa442f33c8e0ebb3555'
      }
    }
]

如果您希望得到如下响应,则应该使用完整的DDB文档客户端:

代码语言:javascript
复制
[
    {
        project_name: 'fake project',
        service_now_request_id: 'CHG000212312',
        service_now_request_url: 'https://service-now.com/sampleApp?id=snx&spa=1&m=changes&r=0d12121aa442f33c8e0ebb3555',
    }
]
EN

回答 1

Stack Overflow用户

发布于 2022-03-13 06:22:35

这里是我的示例代码,如果您愿意的话,可以随意挑选或发布完整的ES6版本。

代码语言:javascript
复制
const {DynamoDB} = require("@aws-sdk/client-dynamodb");
const { DynamoDBDocument } = require('@aws-sdk/lib-dynamodb');

const client = new DynamoDB({region: "us-west-2",});
const ddbDocClient = DynamoDBDocument.from(client);

async function marshaledScanOutput() {

    const primaryDynamoDBTableName = "yourDDBTableName";

    ddbParams = {TableName: primaryDynamoDBTableName};

    try {
        let testScan = await ddbDocClient.scan(ddbParams);
        let result = [];
    
        do {
            testScan.Items.forEach((item) => result.push(item));
            ddbParams.ExclusiveStartKey = testScan.LastEvaluatedKey;
        } while (typeof testScan.LastEvaluatedKey != "undefined");
    
        console.log(result);
        // Example output:
        // [
        //     {
        //       project_name: 'fake project',
        //       service_now_request_id: 'CHG000212312',
        //       service_now_request_url: 'https://service-now.com/sampleApp?id=snx&spa=1&m=changes&r=0d12121aa442f33c8e0ebb3555',
        //     }
        // ]
    }
    catch(error) {
        throw error;
    }
}

marshaledScanOutput();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71454351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档