json - 将标准 JSON 插入 DynamoDB aws-sdk js v3
问题描述
我正在尝试在缩略图字段中注册Standard JSON
为JSDynamoDB
使用aws-sdk 版本 3。
在版本 2 中允许使用该put
方法,在版本 3 中现在是命令,但我没有看到等效的命令。
我的代码:
const { DynamoDBClient, PutItemCommand } = require('@aws-sdk/client-dynamodb');
const DynamoDBDocClient = new DynamoDBClient({ region: "us-east-1"});
const item = {
PK: "My_pk",
SK: "My_sk",
username: "My_username",
thumbnail: {
id: "My_id",
width: "My_width",
height: "My_height"
}
}
const params = {
Item: item,
TableName: "My_table"
};
await DynamoDBDocClient.send(new PutItemCommand(params));
错误:
ERROR TypeError: Cannot read property '0' of undefined
at Object.visit (/var/task/node_modules/@aws-sdk/client-dynamodb/dist/cjs/models/models_0.js:1101:40)
at serializeAws_json1_0AttributeValue (/var/task/node_modules/@aws-sdk/client-dynamodb/dist/cjs/protocols/Aws_json1_0.js:4612:38)
at /var/task/node_modules/@aws-sdk/client-dynamodb/dist/cjs/protocols/Aws_json1_0.js:5514:20
at Array.reduce (<anonymous>)
我只能注册它使用的项目marshall
(来自@aws-sdk/util-dynamodb
),但它注册为DynamoDB JSON
:
解决方案
在 v3 中,您必须使用@aws-sdk/lib-dynamodb库来获得与DynamoDB.DocumentClient
旧 SDK 中类似的功能。它的工作方式有点不同,但它应该做你想做的事。
推荐阅读
- jenkins - 如何在 Jenkins Blue Ocean 中以短格式显示时间戳?
- python - 在python中读取结构化文件
- sql - Postgres 中的累积百分比添加
- python - 是否可以将dict格式的字典写入python文件
- java - 如何使用 selenium 和 java 从开发工具中提取数据
- python - 如何在 Python 中定义函数 bill(L, "Costco") 来总结此列表中的金额?
- javascript - 如何使用 Javasvript/angularjs 从用户输入中删除特殊字符?
- r - 用 NA 润滑问题
- angular - ngFor 在带有可点击模式窗口的表格行上。如何使用 ng-bootstrap .open() 函数执行该模态窗口?
- python - 我需要帮助上课