Amazon SDK for JavaScript V3 API 参考指南详细描述了 Amazon SDK for JavaScript 版本 3 (V3) 的所有 API 操作。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 DynamoDB 中读取和写入单个项目
此 Node.js 代码示例演示:
如何在 DynamoDB 表中添加项目。
如何在 DynamoDB 表中检索项目。
如何从 DynamoDB 表中删除项目。
情景
在本示例中,您使用一系列 Node.js 模块,通过 DynamoDB
客户端类的下列方法,在 DynamoDB 表中读取和写入一个项目:
完成先决条件任务
要设置和运行此示例,请先完成以下任务:
-
设置项目环境以运行这些 Node.js 示例,并安装所需的 Amazon SDK for JavaScript 和第三方模块。请按照 GitHub
上的说明进行操作。 使用用户凭证创建共享配置文件。有关提供共享凭证文件的更多信息,请参阅《Amazon SDK 和工具参考指南》中的共享配置和凭证文件。
创建一个可访问其项目的 DynamoDB 表。有关创建 DynamoDB 表的更多信息,请参阅在 DynamoDB 中创建和使用表。
重要
这些示例使用 ECMAScript6 (ES6)。这需要使用 Node.js 版本 13.x 或更高版本。要下载并安装最新版本的 Node.js,请参阅 Node.js 下载
但是,如果您更喜欢使用 CommonJS 语法,请参阅 JavaScript ES6/CommonJS 语法。
注意
有关这些示例中使用的数据类型的信息,请参阅 Amazon DynamoDB 中支持的数据类型和命名规则。
写入项目
创建文件名为 put-item.js
的 Node.js 模块。请务必如前所示配置 SDK,包括下载所需的客户端和软件包。要访问 DynamoDB,请创建一个 DynamoDB
客户端服务对象。创建一个 JSON 对象,其中包含添加项目所需的参数,在本示例中包括表的名称,定义要设置的属性的映射,以及各个属性的值。调用 DynamoDB 客户端服务对象的 PutItemCommand
方法。
import { PutItemCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new PutItemCommand({ TableName: "Cookies", // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes and // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors Item: { Flavor: { S: "Chocolate Chip" }, Variants: { SS: ["White Chocolate Chip", "Chocolate Chunk"] }, }, }); const response = await client.send(command); console.log(response); return response; };
要运行示例,请在命令提示符中键入以下内容。
node put-item.js
此示例代码可在 GitHub 上的此处
更新项目
创建文件名为 update-item.js
的 Node.js 模块。请务必如前所示配置 SDK,包括下载所需的客户端和软件包。要访问 DynamoDB,请创建一个 DynamoDB
客户端服务对象。创建一个 JSON 对象,其中包含添加项目所需的参数,在本示例中包括表的名称、要更新的密钥、与新属性名称对应的日期表达式以及各个新属性的值。调用 DynamoDB 客户端服务对象的 UpdateItemCommand
方法。
import { UpdateItemCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new UpdateItemCommand({ TableName: "IceCreams", // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes and // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors Key: { Flavor: { S: "Vanilla" }, }, UpdateExpression: "set HasChunks = :chunks", ExpressionAttributeValues: { ":chunks": { BOOL: "false" }, }, ReturnValues: "ALL_NEW", }); const response = await client.send(command); console.log(response); return response; };
要运行示例,请在命令提示符中键入以下内容。
node update-item.js
此示例代码可在 GitHub 上的此处
获取项目
创建文件名为 get-item.js
的 Node.js 模块。请务必如前所示配置 SDK,包括下载所需的客户端和软件包。要访问 DynamoDB,请创建一个 DynamoDB
客户端服务对象。要标识所需获取的项目,您必须提供该项目在表中主键的值。默认情况下,GetItemCommand
方法返回为项目定义的所有属性值。要仅获取所有可能属性值的子集,请指定投影表达式。
创建一个 JSON 对象,其中包含获取某个项目所需的参数,在本示例中包括表的名称,所获取项目的键的值,以及确定要检索的项目属性的投影表达式。调用 DynamoDB 客户端服务对象的 GetItemCommand
方法。
以下代码示例从表中检索一个项目,其主键仅由分区键组成,而不是由分区和排序键组成。如果表的主键由分区键和排序键组成,则还必须指定排序键的名称和属性。
import { GetItemCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new GetItemCommand({ TableName: "CafeTreats", // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes and // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors Key: { TreatId: { N: "101" }, }, }); const response = await client.send(command); console.log(response); return response; };
要运行示例,请在命令提示符中键入以下内容。
node get-item.js
此示例代码可在 GitHub 上的此处
删除项目
创建文件名为 delete-item.js
的 Node.js 模块。请务必如前所示配置 SDK,包括下载所需的客户端和软件包。要访问 DynamoDB,请创建一个 DynamoDB
客户端服务对象。创建一个 JSON 对象,其中包含删除项目所需的参数,在本示例中包括表的名称,以及所删除的项目的键名和值。调用 DynamoDB 客户端服务对象的 DeleteItemCommand
方法。
import { DeleteItemCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new DeleteItemCommand({ TableName: "Drinks", // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes and // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors Key: { Name: { S: "Pumpkin Spice Latte" }, }, }); const response = await client.send(command); console.log(response); return response; };
要运行示例,请在命令提示符中键入以下内容。
node delete-item.js
此示例代码可在 GitHub 上的此处