You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在aws-sdk-js-v3中使用@aws-sdk/lib-dynamodb的unmarshallOutput函数?

如何在DynamoDB扫描代码中使用unmarshallOutput函数?

操作步骤:

  1. 导入工具函数:从@aws-sdk/lib-dynamodb包中导入unmarshallOutput,若未安装该包,先执行npm install @aws-sdk/lib-dynamodb。
  2. 处理扫描结果:获取DynamoDB原生响应后,用unmarshallOutput处理整个响应对象,它会自动把Items中的DynamoDB特殊格式(如{ S: "text" })转换为普通JavaScript对象。

修改后的完整代码:

import { DynamoDBClient, ScanCommand } from "@aws-sdk/client-dynamodb";
// 导入unmarshallOutput函数
import { unmarshallOutput } from "@aws-sdk/lib-dynamodb";

const client = new DynamoDBClient({ region: "us-east-1" });

export async function handler(event, context, callback) {
  const params = {
    TableName: "Amenities"
  };

  try {
    const command = new ScanCommand(params);
    const rawData = await client.send(command);
    // 处理原生响应,转换为普通JS对象
    const processedData = unmarshallOutput(rawData);
    // 返回转换后的结果数组
    return processedData.Items;
  } catch (err) {
    return {
      statusCode: 500,
      body: JSON.stringify({
        message: "Error retrieving data from DynamoDB",
        error: err.message // 可选:补充错误信息方便排查
      })
    };
  }
}

关键说明:

  • unmarshallOutput是AWS SDK v3的专属工具,能直接处理ScanCommand、GetCommand等命令的输出,省去手动逐个转换Item的麻烦。
  • 若仅需转换单个Item,可使用@aws-sdk/util-dynamodb中的unmarshall函数,但unmarshallOutput处理整个响应的效率更高、写法更简洁。

内容的提问来源于stack exchange,提问作者jdiablo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 17:45:08